Pocket

Google フォームに自動返信を実装したら、複数件メールが飛んでしまう “ことがある” ようです。

自動返信を追加する手順の元記事は こちら

今回は、自動返信が複数送信されてしまうハズレを引いてしまった人向け に対応手順をまとめました。

ご査収ください。

※ 対処療法的な対応策です
※ わたしは直りましたが、確実に直る保証はありません

スポンサードリンク


対応方法の概要

複数送信問題ですが、スプレッドシートにスクリプトを実装すると、発生するようです。

スプレッドシートではなく、Googleフォームにスクリプトを実装して対応しましょう。

Google フォーム自動返信記事スプレッドシートに自動返信機能をつける が差し替えになります。

Googleフォームに自動返信機能をつける

Google フォームに自動返信機能をつけます。

01_スクリプトエディタ

右上の設定から スクリプトエディタ に遷移します。

02_貼り付け位置
表示されたエディタ画面に以下のコードをコピペで貼り付けます。


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

03_時計マーク
メール送信が実行される条件(トリガー)を設定します。
時計ボタンをクリックしましょう。

03_トリガーを追加

遷移先画面で、トリガーを追加。

04_変更

イベントの種類を選択 を フォーム送信時 に変更し、保存します。

81e26927912295a7624b5655dadcf79d.png

メール送信を行うアカウントを選択するように求められるので、選択します。

545ca174e6ba8fed0273fe9fe349586d.png

自分で作成したプログラムなので、Google から「世の中に出回ってるプログラムではない」と判断されて警告が出ます。

特に悪さするものではないですが、自己責任でご利用ください。

545ca174e6ba8fed0273fe9fe349586d.png

ce986e423fe08e65c9b6399f70dca823.png

877fdefacfff73999f7833d919da7bc5.png

許可 すれば、作業は完了です。

スポンサードリンク


Googleフォームで自動返信がちゃんと動くかテストする

自動返信機能が作れたら、メールが本当に飛ぶかテストします。

フォームが動くかテストする と同様に Google フォームの案内用 URL を取得し、入力してみましょう。

入力時、メールアドレスは受信が確認できるアドレスを入力してください。
他の入力はてきとうでいいです

3f8c2200e033fc1339d8b7b2d0a5b829.png
無事にメールが受信できたら、テストは完了です。

メール本文は画面のようになります。

th_予約受付

テスト用のデータを削除し、実際に運用を開始してみましょう。

まとめ

Google フォームでの自動返信が複数送信になってしまう現象の対策をまとめました。

まとめると Google スプレッドシートでやっていた返信機能を Google フォームに移植しただけ です。

Google スプレッドシートのバグなのか、仕様変更なのかわかりませんが Google フォームで実装すれば直るようです。

この記事が、複数送信で困っている人の助けになれば幸いです。