【Google】Googleフォームに柔軟な自動返信機能を導入する

Googleフォームには標準機能として
自動返信をする機能もありますが、カスタマイズなど柔軟性が少ないため
少し導入ハードルは高いですが、GASを使うことで柔軟な自動返信機能を導入することが出来ます。

コードの準備

以下のコードを適宜編集し、GAS画面での設定の下準備をします。

18行目のvar NAME_COL_NAME = '名前';名前をGoogleフォームで設定した項目名に
19行目のvar MAIL_COL_NAME = 'メールアドレス';メールアドレスをGoogleフォームで設定した項目名に設定します。

9行目の自動返信メールの件名を設定し、11行目の本文を設定します。

23行目~27行目のメールの設定をします。
adminは基本的にGoogleフォームを設定したGoogleアカウントのメールになりますが、念のため入れておくのが良いです。
sendernameはそれの表示名になります。

その他必要に応じてccbccreplyなども設定します。
Googleフォームに紐付けたGoogleスプレッドシートで入力内容を確認出来ますが、bccに自分自身のメールを入れておくと新着の確認がしやすくなります。
adminと普段の運用メールが異なる場合はreplyも設定してください。(良くあるnoreply@~など)

function sendMailGoogleForm() {
 Logger.log('sendMailGoogleForm() debug start');

 //------------------------------------------------------------
 // 設定エリアここから
 //------------------------------------------------------------

 // 件名、本文、フッター
 var subject = "【テスト】ご登録ありがとうございます。"; 
 var body
 = "ご登録ありがとうございます。\n株式会社テスト担当でございます。\n\n以下の通り、仮登録を承りました。\n2~3営業日以内に担当より追ってご連絡させていただきます。\n\n"
 + "------------------------------------------------------------\n";
 var footer
 = "------------------------------------------------------------\n"
 + "\n";

 // 入力カラム名の指定
 var NAME_COL_NAME = '名前';
 var MAIL_COL_NAME = 'メールアドレス';


 // メール送信先
 var admin = "●●●@gmail.com"; // 管理者(必須)
 var sendername = "テスト担当";//送信者名(必須)
 var cc = ""; // Cc:
 var bcc = "●●●@gmail.com"; // Bcc:
 var reply = "●●●@gmail.com"; // Reply-To:
 var to = ""; // To: (入力者のアドレスが自動で入ります)


 //------------------------------------------------------------
 // 設定エリアここまで
 //------------------------------------------------------------

 try{
 // スプレッドシートの操作
 var sheet = SpreadsheetApp.getActiveSheet();
 var rows = sheet.getLastRow();
 var cols = sheet.getLastColumn();
 var rg = sheet.getDataRange();
 Logger.log("rows="+rows+" cols="+cols);

 // メール件名・本文作成と送信先メールアドレス取得
 for (var i = 2; i <= cols; i++ ) {
 var col_name = rg.getCell(1, i).getValue(); // カラム名
 var col_value = rg.getCell(rows, i).getValue(); // 入力値
 body += "【"+col_name+"】\n";
 body += col_value + "\n\n";
 if ( col_name === NAME_COL_NAME ) {
 body = col_value+" 様\n\n"+body;
 }
 if ( col_name === MAIL_COL_NAME ) {
 to = col_value;
 }
 }
 body += footer;

 // 送信先オプション
 var options = {from: admin};
 if ( cc ) options.cc = cc;
 if ( bcc ) options.bcc = bcc;
 if ( reply ) options.replyTo = reply;

 // メール送信
 if ( to ) {
 MailApp.sendEmail(to, subject, body, options);
 }else{
 MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body);
 }
 }catch(e){
 MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
 } 
}

GAS画面での設定

GoogleフォームからGoogleスプレッドシートの関連付けをし、
Googleスプレッドシートのメニュー拡張機能Apps Scriptと進みます。

拡張機能→Apps Script

コードの貼り付け

以下の赤枠部分に準備したコードを貼り付けます。

コードを貼り付け

保存

保存

承認

承認が必要になるので、作成しているアカウントを選び以下の通り
「詳細」→「(安全でないページ)に移動」→「許可」と進んでいきます。

承認
詳細
(安全でないページ)に移動
許可

動作確認

「実行」を押して動作するか確認します。
このとき、Googleスプレッドシートの一番最後の行を実行するので確実にテスト用のデータ(自分に飛ぶ)ことを事前に確認しておいてください。

実行

トリガー設定

「時計マーク」を押して、「トリガーを追加」をクリックし、トリガー設定をします。
ポップアップ画面の「イベントの種類」を「フォーム送信時」に変更し保存します。

時計マーク トリガーを追加
「フォーム送信時」に変更

再度、承認画面が出てくるので同様に「許可」まで進めていきます。(二回目は多分下記のように英語です。)
許可をクリックしたら設定は全て完了です。

Advanced
Go to (unsafe)
Allow
参考:https://liapoc.com/googelform2.html

関連記事

コメントを残す

*