[nnn.ed.jp] Google フォームで送信後にオリジナルの自動返信メールを送信する方法


概要

こんにちは。5期生、江坂キャンパス・ナレッジベース制作の横内です。

N高等学校では、Google フォームへのアドオン追加が制限されているため、追加機能で、自動返信を追加することは困難になっています。が、Google フォームの回答記録用に利用できるGoogle スプレッドシートのスプリクトエディタにコマンドを入力することで、自動返信メールを送信することができます。その方法についてご説明してまいります。最後までお付き合いを。

シーン

  • 同好会参加受付メールの送信(自分でメッセージをオリジナルにして送信)
  • イベント企画・運営の参加受付メール(注意事項などを記入して送信)
  • その他、フォーム送信後、オリジナル文章を送信したいとき

設定内容

  • Google スプレッドシート - スプリクトエディタ
  • Gmail メールフィルタ

注意事項

この設定を行うあたり、以下の点にはご注意ください。

  • 設定をどうするのかも自由です。設定も任意です。
  • 他人を傷つける恐れがあるものはやめましょう。
  • 誰が見ても、大丈夫な文章にしましょう。

Google フォーム&スプレッドシートの設定方法

1. Google フォームを作成し、フォームを作成します。
※ 名前収集の項目は『名前』にしてください!メールアドレスの自動収集もつけてください!

2.“回答”をクリック

3. “スプレッドシート”をクリック

4. 「回答先の選択」ウィンドウで“作成”を選択
※通常であれば、『新しいスプレッドシートを作成』でOK。

5. 別タブでスプレッドシートが開きます。

6. ツール > “スクリプトエディタ” をクリック。

スクリプトエディタでの操作

1. 別タブでスクリプトエディタが開きます。

8. 以下のコードを修正の上、コピペで貼る。

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

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

 // 件名、本文、フッター
 var subject = "【**】 受付しました。"; 
 var body
 = "フォーム送信、ありがとうございます。以下の内容で受付いたしました。\n\n"
 + "------------------------------------------------------------\n";
 var footer
 = "------------------------------------------------------------\n\n"
 + "\n\nよろしくお願いいたします。\n **チーム";

 // 入力カラム名の指定
 var NAME_COL_NAME = '名前'; //先程名前のフォーム項目部分
 var MAIL_COL_NAME = 'メールアドレス'; //メールアドレス収集の場合は項目名はメールアドレス


 // メール送信先
 var admin_name ="(任意の表示名|例: **チーム)";//送信メールの名前 ※任意で編集。
 var admin = "(Gmailフィルタのアドレス)"; // Gmail フィルタのアドレスに書換
 var bcc = "";// bccがいらない場合は、admin""に書換
 var reply = admin;
 var to = ""; // To: (入力者のアドレスが自動で入ります)



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


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

 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 = 1; 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;


 // メール送信
 if ( to ) {
 /* メールを送信 */
 GmailApp.sendEmail(
 to, //toアドレス
 subject, //表題
 body, //本文
 {
 from: admin, //fromアドレス
 name: admin_name //差出人
 }
 ); 
}else{
 MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body);
 }
 }catch(e){
 MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
 } 
}

次の点を必ず修正してください

・ 「// 件名、本文、フッター」 部分(subject(=先方に見える件名), body(=先方に見える本文) の2箇所) →両方とも必要に応じて編集。ただし、body 部分の 点線に囲まれている"var footer"は絶対に削除しないこと。
・ 「 // メール送信先」 部分(admin_name(=差出人メール送信者名), admin(=差出人メールアドレス) の2箇所)

→ admin(差出人メールアドレス)については、今から作成方法を記述するので、その作成したメールアドレスの利用をしてください。

3. “現在のプロジェクトトリガー”ボタンをクリック。

Google Apps Script の設定に進んでください。

Google Apps Script での操作

1. Google Apps Script で、トリガーを追加します。

2. 以下のようにトリガーを設定します。各項目をクリックすると、プルダウンメニューにて選択が可能です。

3. 追加されていれば問題ありません。

次にGmailでの設定へ進んでください。


Gmail の設定方法

1. Gmail にアクセスし、受信トレイを開く。

2.上部の「メールを検索」をクリックし、任意のメールアドレスを作成および入力。その後、▼をクリック。

メールアドレス作成時の注意

  • @より前部分の自分のメールアドレス は必ず入力。
    * この部分は自分の好きなものを入力できない。

  • + を入力して、任意の文字列を入力する。
    * 必ず「+」が必要。+の後ろに任意の文字列を。

  • 学生の場合、末尾は @nnn.ed.jp を入力。@nnn.ac.jp は利用不可。
    * 教員の場合は逆。@nnn.ac.jp を入力。 @nnn.ed.jp は利用不可。

3. To に入力されていることを確認し、“フィルタを作成”をクリック。

4. 何か実行する内容があれば選択。必要なければ“フィルタを作成”をクリック。

試験運用

一度、前述で作成した内容をテストしてみましょう。

成功例

この操作を行うことで、以下のものを作成することができる。

→ 点線で挟んだ部分には、フォームに入力した内容がすべて記載される。

★ メールアドレスは+をつけてカスタマイズしている。
★ 送信者名もカスタマイズしている。
★ 件名もカスタマイズしている。


Google フォームの自動返信だと味気ない場合がある。その場合は、ぜひこの方法を使って、オリジナリティある文面を自動で送信しよう。

【アドオンで追加すれば良いんじゃない?という意見について】
文章の最初を読んでみよう。答えが書いているよ。