Googleフォームだとアンケートを簡単に実施できますが、回答者にサンクスメールを送信しようとしても簡単にはカスタマイズできません。そこで、Google Apps Script(GAS)を利用することで任意のメールを送信可能になります。
Googleフォームを作る
Googleドライブにアクセスして、「新規」→「Googleフォーム」と選択して作成します。

Googleフォームでは、質問名(①)、回答形式(②)、回答(③)を設定する必要がありますが、メール送信で重要になるのは、①の質問名になります。できるだけ分かりやすく短い言葉にすると良いでしょう。
※ Sampleフォームは見た目だけ作成しております。セキュリティ上、動作しません。
Google Apps Script(GAS)を書く
Googleフォームを作ったら、右上に●が3つ並んだ設定ボタンをクリックして、「スクリプトエディタ」を選択します。
次にGASのスクリプトファイルを3つ作成し、次のファイル名にしてください。
GSファイル名 | 概要 |
---|---|
onSubmitForm | フォームが送信されたら、フォームの値を取得するスクリプト |
sendMailUser | 回答者向けにメールを送信するスクリプト |
sendMailRemainder | 質問者(主催者)向けにメールを送信するスクリプト |
フォームの値を取得するスクリプト
まず、「onSubmitForm.gs」ファイルに下記のコードを記述します。赤字部分と青字部分は、Googleフォームの内容によってカスタマイズが必要になります。
赤字部分は、自分で何の値なのか分かりやすい名称にしてください。青字部分は、前述したGoogleフォームの①の質問名を入れてください。
// バインドされているフォームを取得
FormApp.getActiveForm()
function onSubmitForm(e){
// フォーム回答を配列に保存
var itemResponses = e.response.getItemResponses();
// 回答保存用の連想配列生成
var inputData = {
course : "",
buyDate : "",
name : "",
mail : "",
age : "",
sex : ""
};
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
switch (question){
case '応募コース':
inputData['course'] = answer;
break;
case '購入日':
inputData['buyDate'] = Utilities.formatDate(new Date(answer), "Asia/Tokyo" , "yyyy年MM月dd日");;
break;
case 'お名前':
inputData['name'] = answer;
break;
case 'メールアドレス':
inputData['mail'] = answer;
break;
case '年齢':
inputData['age'] = answer;
break;
case '性別':
inputData['sex'] = answer;
break;
}
}
sendMailUser( inputData );
sendMailRemainder( inputData );
}
回答者にメールを送信する
次に「sendMailUser」ファイルに下記のコードを記述します。Googleフォームの内容によって、ある程度カスタマイズが必要です。青字部分は、必ず変更が必要になります。
function sendMailUser(inputData){
var strTo = inputData['mail'];
var strSubject = '応募を受付ました';
var strFrom = 'noreply@kantan.blog';
var strSender = '送信者名テスト';
var strBody = inputData['name'] + ' 様\n\n'
+ 'この度はご回答いただきありがとうございます。\n'
+ '以下内容にて、応募を受け付け致しました。\n\n'
+ '---------------------------------------------------------------------\n'
+ '【応募コース】\n'
+ ' ' + inputData['course'] + '\n\n'
+ '【購入日】\n'
+ ' ' + inputData['buyDate'] + '\n\n'
+ '【お客様情報】\n'
+ ' ▼お名前\n'
+ ' ' + inputData['name'] + '\n'
+ ' ▼年齢\n'
+ ' ' + inputData['age'] + '\n'
+ ' ▼性別\n'
+ ' ' + inputData['sex'] + '\n'
+ ' ▼メールアドレス\n'
+ ' ' + inputData['mail'] + '\n\n'
+ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'
+ ' ご注意\n'
+ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'
+ '※ 本メールは自動送信ですので、返信いただいてもご回答できません\n'
+ '※ 本メールは大切に保管してください\n'
+ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'
+ '運 営: 株式会社●●●●●●\n'
+ '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━';
/* メールを送信 */
GmailApp.sendEmail(
strTo,
strSubject,
strBody, //通常の本文
{
from: strFrom,
name: strSender,
}
);
}
変数名 | 概要 |
---|---|
strTo | 送信先アドレスです |
strSubject | メールタイトルです |
strFrom | 送信元アドレスです |
strSender | 送信元の表示名です |
strBody | 本文です |
質問者に向けにメールを送信する
回答を受け付けたことを知らせるメールを受信したい場合に必要になります。こちらもGoogleフォームの内容によって、ある程度カスタマイズが必要です。青字部分は、必ず変更が必要になります。
function sendMailRemainder(inputData){
var strTo = 'xxxxx@kantan.blog';
var strSubject = 'アンケートの回答がありました';
var strFrom = 'noreply@kantan.blog';
var strSender = '自動リマインダー';
var strBody = '以下内容にて、受け付けました。\n'
+ '----------------------------------------------------\n\n'
+ '【応募コース】\n'
+ ' ' + inputData['course'] + '\n\n'
+ '【購入日】\n'
+ ' ' + inputData['buyDate'] + '\n\n'
+ '【お客様情報】\n'
+ ' ▼お名前\n'
+ ' ' + inputData['name'] + '\n'
+ ' ▼年齢\n'
+ ' ' + inputData['age'] + '\n'
+ ' ▼性別\n'
+ ' ' + inputData['sex'] + '\n'
+ ' ▼メールアドレス\n'
+ ' ' + inputData['mail'] + '\n\n'
+ '----------------------------------------------------\n\n';
/* メールを送信 */
GmailApp.sendEmail(
strTo,
strSubject,
strBody, //通常の本文
{
from: strFrom,
noReply: true,
name: strSender,
}
);
}
変数名 | 概要 |
---|---|
strTo | 送信先アドレスです |
strSubject | メールタイトルです |
strFrom | 送信元アドレスです |
strSender | 送信元の表示名です |
strBody | 本文です |
トリガーを設定する
GASスクリプトを書いただけでは、動きません。どのタイミングでスクリプトを実行させるのかを指定する必要があります。これを引き金の意味で、「トリガー」と呼びます。
スクリプトエディタのメニューから「トリガー」を選択しましょう。
トリガーの一覧が表示されます。まだトリガーが設定されていなければ、「トリガーを追加」を選択します。
トリガーの設定画面が表示されるので下記のように設定して「保存」してください
- 実行する関数:作成した「onSubmitFrom」関数を選択します。
- 実行するデプロイ:HEADのままでOKです。HEADとは、今現在のスクリプトコードを実行する選択支です。
- イベントのソースを選択:「フォームから」を選択します。
- イベントの種類:「フォーム送信時」を選択します。
これにより、フォーム送信時に「onSubmitFrom」関数が呼び出されます。
Googleアカウントへのアクセス権を承認する
トリガーを保存すると、次の画面が表示されるケースがあります(ポップアップで表示されるため、ポップアップを許可しておく必要があります)。下記の「このアプリ」とは、今回作成したスクリプトコードのことです。「Googleアカウント側で『安全性に問題ないか』承認してください」という趣旨になります。
「詳細」をクリックして「(安全ではないページ)に移動」をクリックします。安全ではないというのは、「スクリプトがあなたのGmailを操作しようとしていますよ」ということです。
作成したスクリプトが、GmailやGoogleフォームにアクセスしようとしてますが、許可しますか?と質問してくるので、「許可」を押してください。
無事、トリガーが設定されました!これで完了です!閉じてGoogleフォームで回答してみましょう!