【Google Apps Script (GAS)】GoogleフォームでThankYouメールを自動返信する
アンケート形式でWebフォームを簡単に作成してくれるGoogleフォームにGoogle Apps Scriptを使ってThankYouメールを自動返信する方法をご紹介します。
新規フォームを作成する
まずは新規フォームを作成します。
「Googleドライブ」の「新規」→「その他」メニューから「Googleフォーム」を選択して新規フォームを作成します。
メニューにない場合は「+ アプリを追加」からメニューに追加してください。
Googleフォームが立ち上がったら質問を追加します。
「メールアドレス」の項目は必ず追加してください。
「設定」から「メールアドレスを収集する」にチェックを入れるとメールアドレスの質問が追加されますが、スクリプトで取得できないので、質問を追加してください。
スクリプトコードを記述する
フォームができたら、スクリプトを記述していきます。
右上メニューから「スクリプトエディタ」を起動します。
スクリプトエディタが起動したら、下記のコードを記述します。
function myFunction(e) {
// ワーク変数
var message = '';
var mail = '';
var name = '';
//回答のオブジェクトを取得
var itemResponses = e.response.getItemResponses();
//回答内容を取得
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
// 質問が「ニックネーム」の場合
if (question == 'お名前'){
name = answer;
}
// 質問が「メールアドレス」の場合
if (question == 'メールアドレス'){
mail = answer;
}
message += question + ':' + answer + '\n';
}
// メッセージを作成
var title = 'ありがとうございます。';
var content = name + 'さん\n'
+ 'ご回答ありがとうございます。\n'
+ '下記の通り受け付けました。\n\n'
+ message;
GmailApp.sendEmail(mail, title, content);
}
コードの解説
少しポイントを絞ってスクリプトコードを解説します。
回答情報を取得する
スクリプトエディタを起動するとfunction myFunction() {}が記述されていると思います。
Googleフォームの回答情報を取得するためにはmyFunction()の引数にeを追加します。
(多分、Elementのeだと思います。たぶん・・・)
引数に設定したeからgetItemResponses()で回答情報を取得することができます。
var itemResponses = e.response.getItemResponses();
itemResponsesは配列で取得できるので、for文で一つ一つ取り出します。
//回答内容を取得
for (var i = 0; i < itemResponses.length; i++) {
:
}
メールで送信するメッセージを設定する
文字列連結でメッセージを作成します。
改行が必要な場合は\nを記載します。
var content = name + 'さん\n'
+ 'ご回答ありがとうございます。\n'
+ '下記の通り受け付けました。\n\n'
+ message;
メールの送信方法についてはこちらの記事を参考にしてください。
トリガーを設定する
最後に「トリガー」を設定します。
トリガーボタンを押下し、設定画面を開きます。
設定は下記の通りです。
実行する関数を選択:myFunction
イベントのソースを選択:フォームから
イベントの種類を選択:フォームの送信時
設定したら「保存」ボタンを押下して設定操作が完了します。
全ての設定が終わったら、ThankYouメールが送信されるかテストしてください。
ディスカッション
コメント一覧
まだ、コメントがありません