Googleフォームから自動返信メールを送る方法

イベントの申し込みやアンケートなどで簡単に申込みフォームを作るためによく使われるのが、Googleフォーム。
私もよくGoogleフォームを使います。すぐに作れて、入力されたデータを複数人で共有でいて便利ですよね。

ただ、他のイベントフォームサービスにあるような自動返信メール機能が、Googleフォームにはないんですよね。
でも自動返信メールを付けたい!っていうご要望があると思うので、今回その方法をお教えします。

少しプログラムを設定する必要があるので、ITに詳しくない方はぜひ詳しい人に相談しながら進めてください。

1.イベントフォームのデータが入力されるスプレッドシートを選択します

Googleフォームを作成して、テストでフォームを入力してみましょう。
入力されたデータを保存するための受け皿として、スプレッドシートが作成されます。

そのスプレッドシートを選択します。

2.「ツール」-「スクリプトエディタ」を選択します

スクリプトエディタとは、Google Apps Scriptというプログラムを設定する場所です。

3.初めて設定する場合は、以下のようなメッセージが出ますので「閉じる」を押します

4.以下のコードをコピーします

プログラム言語が分かる方向けですが、Google Apps ScriptはJavaScriptでGoogle関数が扱えるようになったものです。
そのため、中身はJavaScriptと同じルールで記載を変更いただけます。

このプログラムの詳細な説明は、こちらから参照ください。

//------------------------------------------------------------
// 設定エリアここから
//------------------------------------------------------------
 
// 件名、本文、フッター
var subject = "【お問い合わせ】お問い合わせ完了通知メール"; 
var body
    = "この度は、お問い合わせいただきましてありがとうございます。\n\n"
    + "以下の内容にてお問い合わせいただきましたのでご連絡いたします。\n"
    + "---------------------------------------------------------------------------------\n";
var footer
    = "---------------------------------------------------------------------------------\n\n"
    + "何かご不明な点がございましたら、\n"
    + "本メールへの返信にてご連絡をお願い致します。\n\n"
 + "====================================================\n"
+ "  安藤 昭太\n"
+ "〒000-0000\n"
+ "東京都中央区中央1-1-1 第一ビル\n"
+ "TEL:03-3000-0000 FAX:03-3000-0001\n"
+ "====================================================\n"
    + "====================================================\n"
    + "このメールに心当たりがない場合、\n"
    + "どなたかが誤って貴方様のメールアドレスを登録された可能性がございます。\n\n"
    + "大変お手数ですが、このメールの中身を消さず、\n"
    + "「このメールに心当たりがない」旨を最上部に記してご返信ください。\n"
    + "登録内容を削除させていただきます。\n"
    + "====================================================\n";
 
 
// 入力カラム名の指定
var NAME_COL_NAME = 'お名前';
var MAIL_COL_NAME = 'メールアドレス';
var TIMESTAMP_LABEL = 'タイムスタンプ';
 
// メール送信先
var admin = "test@gmail.com"; // 管理者(必須)
var cc    = "";    // Cc:
var bcc   = admin + ",test@test.com"; // Bcc:
var reply = admin; // Reply-To:
var to    = "";    // To: (入力者のアドレスが自動で入ります)
 
//------------------------------------------------------------
// 設定エリアここまで
//------------------------------------------------------------
 
try{
    // スプレッドシートの操作
    var sh   = SpreadsheetApp.getActiveSheet();
    var rows = sh.getLastRow();
    var cols = sh.getLastColumn();
    var rg   = sh.getDataRange();
    Logger.log("rows="+rows+" cols="+cols);
 
    // メール件名・本文作成と送信先メールアドレス取得
    for (var j = 1; j <= cols; j++ ) {
        var col_name  = rg.getCell(1, j).getValue();    // カラム名
        var col_value = rg.getCell(rows, j).getValue(); // 入力値
       
        if ( col_name === NAME_COL_NAME ) {  //メール本文の最初に名前を入れる
            body = col_value+" 様\n\n"+body;
        }
        if ( col_name === MAIL_COL_NAME ) {  //メールアドレス
            to = col_value;
        }
       if ( col_name === TIMESTAMP_LABEL ) { //タイムスタンプ⇒申込日時
            col_name = '申込日時';
        }
        body += "【"+col_name+"】\n";
        body += col_value + "\n\n";
    }
    body += footer;
 
    // 送信先オプション
    var options = {};
    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);
}

5.コピーした内容を以下のように貼り付け、保存ボタン(フロッピーのアイコン)を押します

function myFunction() { の下に貼りつけます。

6.プロジェクト名を入力します(任意の名前でOK)

プロジェクト名はなんでも結構です。このプログラム全体の名前になります。

7.「リソース」-「現在のプロジェクトのトリガー」を選択します

トリガーとは、フォームが送信された時に自動的にプログラムが実行されるようにするための設定です。

8.「トリガーが設定されていません・・・」を選択します

9.実行「myFunction」、イベント「スプレッドシートから」、「フォーム送信時」を選択し、「通知」ボタンを押します

ここで、スプレッドシートで、フォームが送信された時に、プログラムが実行されるように設定します。

10.「メール(・・・)経由」、「今すぐ」を選択し、「OK」ボタンを押します

プログラムが実行された時(=メールが送信された時)にエラーが発生した場合のエラー報告動作を設定します。

11.「保存」ボタンを押します

12.「続行」ボタンを押します

自分が作ったプログラムを実行するために、管理者(ユーザー)の承認が必要になります。

13.「承認する」ボタンを押します

ここまでで設定は終了しました。

あとは、フォームからテストデータを入力をして、送信してみましょう。

例えば、こんな感じでデータが入力されたします。

そうするとこんな感じでメールが来ます。

データの入力ミス(メールアドレスがないなど)や設定にミスがあった場合、設定した人のアカウントにエラー内容が記載されたメールが送信されますので、その内容を見て、設定を修正します。

ぜひ設定してみてください!

ノウハウ

メールマガジンにご登録お願いします。



ITに関するお困りごとがあれば、お問い合わせください!
ITツールが決まっていなくても、導入が決まっていなくても構いません。ぜひ一度そのお悩みや課題をお聞かせ下さい。
NPTechナビをフォローする
この記事を書いた人
安藤昭太

株式会社カルミナ代表取締役。テクノロジーをこよなく愛するエンジニア。

コンピューターが好きで、人と話すのも好き。現代のテクノロジーで社会課題を解決したいと誰よりも思い、カルミナを立ち上げる。

海外旅行と食べることが大好きな一児の父。

NPTechナビをフォローする
NPTechナビ