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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

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

Q&A

解決済

3回答

3111閲覧

【GAS】Googleフォーム メールアドレスが収集できない

komtan

総合スコア3

Google Apps Script

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

0グッド

0クリップ

投稿2021/05/13 07:27

編集2021/05/13 21:58

前提・実現したいこと

■やりたいこと
Googleフォームを利用して、スクリプトにより任意のアドレスに通知と入力内容が送信されるようにしたいです。

■課題
参考サイトなどから以下のように、設定したのですが
フォームに入力されたメールアドレスが受信メールに反映されていないため、反映されるようにしたいです。
(メールアドレス以外では、フォームに入力された内容は、受信メールに届いています。)

補足
・Googleフォームの設定にて、「[メールアドレスを収集する]オプション機能を利用しています。
・ご回答頂いたお二方ありがとうございます。設定してみましたが、うまく作動しませんでした。すみません。
・おそらく理解力が足りないせいかと思いますので、可能であれば具体的にどこにコードを設置すればいいかご教示いただけますと幸いです。お手数おかけして申し訳ございません。

function sendForm(e){
// メールの件名
var subject = "ホームページからのお問い合わせ";
// メール本文
var body = "以下の内容でお問合せがありました。";
// ☆メール送信先☆
var to = "送信したいメールアドレス";

var itemResponses = e.response.getItemResponses();
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 += answer;
}
MailApp.sendEmail({to:to,subject:subject, body:body});
}

試したこと

function sendForm(e){
// メールの件名
var subject = "ホームページからのお問い合わせ";
// メール本文
var body = "以下の内容でお問合せがありました。";
// ☆メール送信先☆
var to = "送信したいメールアドレス";

var itemResponses = e.response.getItemResponses();
for (var i = 0; i < itemResponses.length; i++) {

  let email = e.response.getRespondentEmail(); // ※ここに挿入してみました。

var itemResponse = itemResponses[i]; var question = itemResponse.getItem().getTitle(); var answer = itemResponse.getResponse(); // Googleフォームの質問項目 body += "\n\n■" + question + "\n\n"; // 質問に対する回答内容 body += answer;

}
MailApp.sendEmail({to:to,subject:subject, body:body});
}

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

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

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

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

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

guest

回答3

0

メールアドレスの取得を設定してるならこれ↓
https://www.yukibnb.com/entry/form_getrespondentemail

質問の中にメールアドレスを入力する項目がある場合は、for文の途中でメールアドレスの項目になったらtoに代入しましょう!

投稿2021/05/13 09:47

Tatsunosuke

総合スコア599

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

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

0

質問としてメールアドレスを記入する欄を設定しているのではなく、Googleフォームの設定で「メールアドレスを収集する」にチェックを入れているということであれば、e.response.getRespondentEmail()で取得する必要があります。

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

投稿2021/05/13 09:38

sawa

総合スコア3002

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

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

0

自己解決

解決致しました。回答頂いた皆様ありがとうございます!

投稿2021/05/16 23:45

komtan

総合スコア3

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

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

sawa

2021/05/17 00:42

初めてのteratail利用なので、わからない故にかもしれませんが、この質問の閉じ方はNGです。 回答者の提示した方法で解決したなら、どちらかをベストアンサーとして解決済みとすべきですし、 もしそれ以外の方法で解決したなら、それを記載して自己解決としてください。 ポイント云々は個人的には気にしないのですが、これだと結局なにが原因だったかわからずもやっとした感じになります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問