Google フォームに自動返信を実装したら、複数件メールが飛んでしまう “ことがある” ようです。
自動返信を追加する手順の元記事は こちら
今回は、自動返信が複数送信されてしまうハズレを引いてしまった人向け に対応手順をまとめました。
ご査収ください。
※ 対処療法的な対応策です
※ わたしは直りましたが、確実に直る保証はありません
スポンサードリンク
対応方法の概要
複数送信問題ですが、スプレッドシートにスクリプトを実装すると、発生するようです。
スプレッドシートではなく、Googleフォームにスクリプトを実装して対応しましょう。
Google フォーム自動返信記事の スプレッドシートに自動返信機能をつける が差し替えになります。
Googleフォームに自動返信機能をつける
Google フォームに自動返信機能をつけます。
右上の設定から スクリプトエディタ に遷移します。
表示されたエディタ画面に以下のコードをコピペで貼り付けます。
function autoreply(e){ var itemResponses = e.response.getItemResponses(); var message = ''; var username = ''; var mail = ''; for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; var question = itemResponse.getItem().getTitle(); var answer = itemResponse.getResponse(); if (question == '受取人名'){ username = answer; } if (question == 'メールアドレス'){ mail = answer; } message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n\n'; } var title = 'ご予約ありがとうございます'; var content = username + ' 様\n\n' + 'ご予約ありがとうございます。\n' + '下記内容でご予約を受け付けました。\n\n' + '------------------------------------------------------------\n' + message + '------------------------------------------------------------\n\n' GmailApp.sendEmail(mail, title, content); }
メール送信が実行される条件(トリガー)を設定します。
時計ボタンをクリックしましょう。
遷移先画面で、トリガーを追加。
イベントの種類を選択 を フォーム送信時 に変更し、保存します。
メール送信を行うアカウントを選択するように求められるので、選択します。
自分で作成したプログラムなので、Google から「世の中に出回ってるプログラムではない」と判断されて警告が出ます。
特に悪さするものではないですが、自己責任でご利用ください。
許可 すれば、作業は完了です。
スポンサードリンク
Googleフォームで自動返信がちゃんと動くかテストする
自動返信機能が作れたら、メールが本当に飛ぶかテストします。
フォームが動くかテストする と同様に Google フォームの案内用 URL を取得し、入力してみましょう。
入力時、メールアドレスは受信が確認できるアドレスを入力してください。
他の入力はてきとうでいいです
無事にメールが受信できたら、テストは完了です。
メール本文は画面のようになります。
テスト用のデータを削除し、実際に運用を開始してみましょう。
まとめ
Google フォームでの自動返信が複数送信になってしまう現象の対策をまとめました。
まとめると Google スプレッドシートでやっていた返信機能を Google フォームに移植しただけ です。
Google スプレッドシートのバグなのか、仕様変更なのかわかりませんが Google フォームで実装すれば直るようです。
この記事が、複数送信で困っている人の助けになれば幸いです。