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

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

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

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

Google フォーム

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2125閲覧

(GAS)フォーム送信時の返信先アドレス(ReplyTo)設定時のエラーについて

S1999

総合スコア11

Google スプレッドシート

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

Google フォーム

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

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/04/21 03:48

前提・実現したいこと

Googleフォームでお問い合わせフォームを作り、回答送信ボタン押下時に回答メールが指定したメールアドレスに届き、
届いたメールに返信ボタンを押してお問い合わせした人への返信文を書けるようにしたいのですが、どのようにすればよいのでしょうか。

var options = {replyTo: e.namedValues['メールアドレス'][0]};
と記載したら回答メールが届かなくなり、
下記のエラーが出ました。

発生している問題・エラーメッセージ

TypeError: Cannot read property 'メールアドレス' of undefined

該当のソースコード

// FormApp.getActiveForm() function sendForm(e){ var itemResponses = e.response.getItemResponses(); // メールの件名 var subject = "初診予約についてのお問い合わせ"; // メール本文 var body = "以下の内容でお問合せがありました。"; // ☆メール送信先☆ var to = "test@test.com"; // メール返信先設定 var options = {replyTo: e.namedValues['メールアドレス'][0]}; for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; var question = itemResponse.getItem().getTitle(); var answer = itemResponse.getResponse(); // Googleフォームの質問項目 body += "\n\n■" + question + "\n\n"; // 質問に対する回答内容 body += answe } MailApp.sendEmail(to, subject, body, options); }

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

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

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

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

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

guest

回答1

0

ベストアンサー

いきなり namedValuesが登場してますが、namedValues はスプレッドシート側のForm submitで使うものなので、Google Formのエディタに記載してるであろう今回のコードでは動きません。

フォームの設定で「メールアドレスを収集する」で回答者のメールを取得しているなら、
e.response.getRespondentEmail() を使うと良いかと。

https://developers.google.com/apps-script/guides/triggers/events

https://developers.google.com/apps-script/reference/forms/form-response#getRespondentEmail()

投稿2021/04/21 08:34

sawa

総合スコア3002

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

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

S1999

2021/04/21 08:45

ご回答ありがとうございます。 ソースをe.response.getRespondentEmail()に変えました。 質問を出した後から ReferenceError: answe is not defined というエラーが発生し、メールも送れなくなってしまいました。 これの対処法をご存じでしたら教えていただけますでしょうか。
sawa

2021/04/21 08:52

文字をよく見ましょう。 answe となってる記載ミスの箇所がコード上ありますよ。
S1999

2021/04/21 09:12

お手数をおかけしてしまい申し訳ありません。 解決いたしました。 本当に助かりました。ありがとうございました!
sawa

2021/04/21 09:48

解決されたようで何よりです。質問を解決済にしてクローズできると思いますので、そちらのご対応をお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問