Googleフォームには標準機能として 自動返信をする機能もありますが、カスタマイズなど柔軟性が少ないため 少し導入ハードルは高いですが、GASを使うことで柔軟な自動返信機能を導入することが出来ます。
コードの準備
以下のコードを適宜編集し、GAS画面での設定の下準備をします。
18行目のvar NAME_COL_NAME = '名前';
の名前
をGoogleフォームで設定した項目名に 19行目のvar MAIL_COL_NAME = 'メールアドレス';
のメールアドレス
をGoogleフォームで設定した項目名に設定します。
9行目の自動返信メールの件名を設定し、11行目の本文を設定します。
23行目~27行目のメールの設定をします。admin
は基本的にGoogleフォームを設定したGoogleアカウントのメールになりますが、念のため入れておくのが良いです。sendername
はそれの表示名になります。
その他必要に応じてcc
やbcc
、reply
なども設定します。 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
と進みます。
コードの貼り付け
以下の赤枠部分に準備したコードを貼り付けます。
保存
承認
承認が必要になるので、作成しているアカウントを選び以下の通り
「詳細」→「(安全でないページ)に移動」→「許可」と進んでいきます。
動作確認
「実行」を押して動作するか確認します。
このとき、Googleスプレッドシートの一番最後の行を実行するので確実にテスト用のデータ(自分に飛ぶ)ことを事前に確認しておいてください。
トリガー設定
「時計マーク」を押して、「トリガーを追加」をクリックし、トリガー設定をします。
ポップアップ画面の「イベントの種類」を「フォーム送信時」に変更し保存します。
再度、承認画面が出てくるので同様に「許可」まで進めていきます。(二回目は多分下記のように英語です。)
許可をクリックしたら設定は全て完了です。
参考:https://liapoc.com/googelform2.html Favorite