問題点
Google フォームで自動返信メールを行う際メールが複数送信されてしまう。
原因
理由はわからないけど、スプレットシートのスプリクトで行うと複数送信されるケースがあるらしい。
解決策
スプリクトをスプレットシートではなくフォームの方で書くことで解決した。
作成手順
スプレットシートでスプリクト書く方法と同様。
- フォーム作成
- スクリプトエディタにソースを書く
- トリガー設定
サンプルソース
function sendMailGoogleForm(event) {
var itemResponses = event.response.getItemResponses();
var address = event.response.getRespondentEmail();
//件名
var subject = “xxxフォーム(自動返信メール)”;
//本文
var name;
var body
= “この度はお申し込みをいただき、誠にありがとうございます。\n”
+ “\n”
+ “\n—————–\n\n”
+ “【お申し込み内容】\n\n”
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
if ( question === ‘タイムスタンプ’ ) {
continue;
}
if ( question === ‘お名前’ ) {
name = answer+” 様\n\n”;
}
body += “■”+question+”\n”;
body += answer + “\n\n”;
}
body = name+body;
//送信
GmailApp.sendEmail(address,subject,body);
}