Google フォームで自動返信メールを送りたい

問題点

Google フォームで自動返信メールを行う際メールが複数送信されてしまう。

原因

理由はわからないけど、スプレットシートのスプリクトで行うと複数送信されるケースがあるらしい。

解決策

スプリクトをスプレットシートではなくフォームの方で書くことで解決した。

作成手順

スプレットシートでスプリクト書く方法と同様。

  1. フォーム作成
  2. スクリプトエディタにソースを書く
  3. トリガー設定

サンプルソース


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);
}

佐賀のウェブやです。
お問い合わせはTwitterからお気軽に^^

Twitter