質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1929閲覧

(GAS)フォーム送信時の自社宛メールの返信先アドレス(ReplyTo)の設定方法が分からない

KJ1980

総合スコア9

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/12/21 07:39

編集2020/12/21 08:39

Googleフォームでお問い合わせフォームを作り、回答が保存されるスプレッドシートのスクリプトエディタで以下内容で、窓口アドレスから担当者に無事メールが正しく配信されています。

ここに新たに、返信先アドレス(Reply-To)として問い合わせ者が入力した「メールアドレス」をそのまま入れるようにすることで、届いたメールに返信ボタンを押してすぐに問い合わせ者への返信文を書けるようにしたいのですが、どのようにすればよいのでしょうか。

「var options = {replyTo: 'メールアドレス'};」なども試しに入れてみたのですがうまく行かず…教えていただけるとたいへんありがたいです。よろしくお願いします。

function onFormSubmit(e) { var recipient = 'hogehoge@hogehoge.co.jp'; var subject = 'お問い合わせがありました'; var items = ['メールアドレス', 'メールアドレス(確認)','氏名', '所属', '電話番号', 'お問い合わせの内容']; var body = '以下の内容でお問い合わせがありました。\n\n'; for (var i = 0, len = items.length, name; i < len; i++) { name = items[i]; body += '【' + name + '】\n' + e.namedValues[name] + '\n\n'; } MailApp.sendEmail(recipient, subject, body); }

◆追伸
「var options = {replyTo: 'メールアドレス'};」を利用した際の内容は以下でした。この時は、メール自体が届きませんでした。

function onFormSubmit(e) { var recipient = 'hogehoge@hogehoge.co.jp'; var subject = 'お問い合わせがありました'; var items = ['メールアドレス', 'メールアドレス(確認)','氏名', '所属', '電話番号', 'お問い合わせの内容']; var body = '以下の内容でお問い合わせがありました。\n\n'; for (var i = 0, len = items.length, name; i < len; i++) { name = items[i]; body += '【' + name + '】\n' + e.namedValues[name] + '\n\n'; } var options = {replyTo: 'メールアドレス'}; MailApp.sendEmail(recipient, subject, body, option);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daregada

2020/12/21 08:07

> 「var options = {replyTo: 'メールアドレス'};」なども試しに入れてみたのですがうまく行かず… 試しに「どんなふうに」入れてみて、「どんなふうに」上手くいかなかったのか、質問文に追加でお書きください。
KJ1980

2020/12/21 08:38 編集

ありがとうございます。 質問文に追記しました。
guest

回答1

0

ベストアンサー

質問文に追加されたとおりの内容なのであれば、原因は単なる打ち間違い(sの付け忘れ)ですね。こちらでテストした限りでは、これでメールが送れて、受け取ったメールのreply-toも正しく設定されています。

Diff

1var options = {replyTo: 'メールアドレス'}; 2-MailApp.sendEmail(recipient, subject, body, option); 3+MailApp.sendEmail(recipient, subject, body, options);

なお、reply-toだけを追加したいのであれば、別の書き方もあります。

Class MailApp  |  Apps Script  |  Google Developers

補足: メールアドレスなどを意図的にぼかしたコードを書いているのだと思ったら、実際にreply-toに'メールアドレス'と書いていたので、フォームから取得できるメールアドレスをe.namedValues['メールアドレス'][0] で得て、{replyTo: e.namedValues['メールアドレス'][0] }と書くことで解決した。

投稿2020/12/21 08:58

編集2020/12/22 03:43
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KJ1980

2020/12/22 00:21

ご回答いただき、ありがとうございました。 試したところ、やはりメールが届かない状態です。 ちなみにスクリプト画面のところで実行ボタンを押してみたところ、 「TypeError: Cannot read property 'namedValues' of undefined(行 8、ファイル「コード」)」 と出ました。 行8は今回追加したところではなく body += '【' + name + '】\n' + e.namedValues[name] + '\n\n'; なのですが、こちらが悪さをしているのでしょうか。 (ただ、以前はメールが届いていたのですが…) なお、上記の\は、実際にはスラッシュの逆のような形です。
Daregada

2020/12/22 01:17

ああ、こちらはフォームまでは作っていないので、そこは検証していませんでした。そこは、「この関数がフォームから実行されたとき」に、メールアドレスなどを取り出すためにありますから、 > スクリプト画面のところで実行ボタンを押してみたところ、 では動きません。 もしかして、「{ replyTo: 'メールアドレス` }」って、文字通りそのまま書いてます? そこには、直接メールアドレスを書くか、メールアドレスが格納された変数などを書きます。ですから、フォームに入力されたメールアドレスを使うのであれば、 「{ replyTo: e.namedValues['メールアドレス'] }」と書かなければいけません。
KJ1980

2020/12/22 03:35

たいへん恥ずかしいです。文字通りそのまま書いてしまっていました。 頂いた内容で試したところ、メールは届きましたが返信ボタンを押すと、To欄に 「Ljava.lang.Object@v☓dcml-☓☓.●●●●.●●.jp」と「""@☓☓ccd☓☓☓」の2つが表示されました。特に後者はメールアドレスの形式でもありませんでした。 ※●のところは会社のドメインが入ります ※☓は数字は入っていました 上記を受けて色々ググりまして、['メールアドレス']のあとに[0]をつけてみたところ、正しく返信先アドレスに登録されました! 教えていただき、ありがとうございました。感謝です。
Daregada

2020/12/22 03:39

おっと、e.namedValues['メールアドレス'] は配列でしたか。[0]を付けてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問