Googleドライブのフォーム入力後に自動返信メールを送る方法

どうも、しょーざ(@sho_oza)です。
久々にガチっぽい記事を書きたいと思います。
今日紹介するのは、Googleドライブのフォームを使った時に、
フォーム入力後入力者へ自動返信メールを送る方法をご紹介します。
簡単に言うと、お問い合わせフォーム入力後すぐに送られてくる確認メールを送るシステムを作る方法です。
結構長文になっているので、関係ないと思う人は見ない方がよさそうですw
では早速いきますよ!

まずはフォーム作成

ではフォームを作成しましょう。
Googleドライブを開き新規作成から「フォーム」を選択します。

フォームの作成は本当に簡単に出来ます。
さくさくっと作っちゃってください。
今回はブログのお問い合わせフォームを作ってみました。
下のURLから見れます。
https://docs.google.com/forms/d/19TAT3nzwZ5ilCcAwIVBaYQO8pH59D0mA18YmXNv1TUc/edit#

こんな具合にスプレッドシートも合わせて作成できました。
うん、簡単ですね♪

ここからが本番!

とりあえずこれでスプレッドシートが出来ました。
ここからが本番です。
フォーム入力後に自動返信するよう設定しましょう。
自動返信をするように設定するにはスクリプトを使います。

早速いきますよー!
まずは送信するためのスクリプトコードを書いちゃいましょう。
僕が送りたいと思っているのはこんな返信メールです。

件名:お問い合わせありがとうございます!
====================
こんにちは
@Sho_ozaです
お問い合わせ頂きありがとうございます!
ご送信頂きました内容を参考によりよいブログへ進化させていきます!
引き続き応援頂けると嬉しいです♪

今後ともよろしくお願いします。

                                                      • -
                                                      • -

もしよかったらFacebookページにいいねしてください。
お願いします。
Facebookページ:http://www.facebook.com/ShoOzaHome
@sho_oza

このようなメール文で自動返信するには下記のスクリプトコードを書く必要があります。
原文のままで載せているので、それぞれ自分にあったコードに変更してくださいね。

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

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

// 件名、本文、フッター
var subject = "お問い合わせありがとうございます!";
var body
="こんにちは\n\n"
+"@Sho_ozaです\n"
+"お問い合わせ頂きありがとうございます!\n"
+"ご送信頂きました内容を参考によりよいブログへ進化させていきます!\n"
+"引き続き応援頂けると嬉しいです♪\n"
+"\n"
+"今後ともよろしくお願いします。\n";
var footer
="----------------------------\n"
+"----------------------------\n"
+"もしよかったらFacebookページにいいねしてください。\n"
+"お願いします。\n"
+"Facebookページ:http://www.facebook.com/ShoOzaHome\n"
+"@sho_oza";

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

// メール送信先
var admin = "送り元@gmail.com";
var cc = ""; // Cc:
var bcc = admin; // 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 === SUBJ_COL_NAME ) {
subject += col_value;
}
}
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);
}
}

スクリプトコードを書く時の注意点をいくつか上げていきます。

まず、本文を作成する時に段落を増やしていく方法です。
var body以下はの最初の文には="書きたいこと/n/n"という形式で書きます。
2行目以下は+"書きたいこと\n"という形で行数を追加していきます。
最後の行は+"書きたいこと\n";という形で終わってください。
最後の;←これ忘れずにね

あと入力コラム名の記載は忘れずに。
スプレッドシートの列名をそれぞれ当てはめて生きます
NAME_COL_NAMEは送信先の名前
MAIL_COL_NAMEは送信先のメールアドレスです。
この2つだけ正しいものを入れておけばとりあえずOKです。

自動返信メールを返信した時の送信先もちゃんと設定しておきましょう。

これでスクリプトコードをはOK。
早速実装しましょう。

実装!!

フォームに右上にある「回答先を選択する」をクリックします。

回答先を「新規スプレッドシート」へ選択して「作成」をクリック

スプレッドシート上の「ツール」から「スクリプトエディタ」を選択します。

次に「空のプロジェクトを選択」
作ったスクリプトコードをコピペします。
最初に表示されているfunction myFunction() {}は消してね。
コピペしたら一旦右上のフロッピーボタンをクリックしてセーブします。
セーブ時にエラーがでた場合は何かミスがあるってことです。

セーブが完了したら次に「リソース」から「現在のプロジェクトのトリガー」を選択します。

「トリガーが設定されていません。今すぐ追加するにはここをクリックしてください。」と出るのでクリックしましょう。
基本的には自動で設定されていますが、右端の部分の設定が「起動時」となっているので、「フォーム送信時」に切り替えましょう。
切り替えたら保存!

初めて設定する場合このようなエラーが表示されます。
シカトして「承認」を押してください。

承認された!閉じよう。んで再度保存。
これで設定は完了です!!!
お疲れ様でした。

じゃあ試してみましょう。
自動で返信くるかなー?
送信!!

しっかりとメールが送られてきました!!!!!!
こんな感じで自動返信システムをGoogleドライブのフォームを使って簡単に出来ます。
かなり便利な機能なので、ブログだけにとどまらず会社でも使えそうですね♪
メール文も簡単に変更可能なので、ぜひお試しください。