【GAS】Googleフォームの回答後、自動返信メールを送る方法
Googleフォームを回答した後に、自動返信メールを送る方法をまとめた。
手順
フォームを作成する
Googleフォームで適当なフォームを作成する( ここでは下記のようなフォームとする )。
スクリプトを作成する
フォームの編集画面からスクリプトエディタを開き、下記の関数を定義する。
フォームを送信した時の処理をする関数
function OnSubmitForm( event_info )
{
const ITEM_AND_ANSWER_PAIRS = event_info.response.getItemResponses();
const ADDRESS = GetAnswer( ITEM_AND_ANSWER_PAIRS, 'メールアドレス' );
const SUBJECT = '自動返信メール';
const TEXT = CreateMailText( ITEM_AND_ANSWER_PAIRS );
GmailApp.sendEmail( ADDRESS, SUBJECT, TEXT );
}
回答を取得する関数
function GetAnswer( item_and_answer_pairs, item_name )
{
const OnFind = pair => pair.getItem().getTitle() === item_name;
const PAIR = item_and_answer_pairs.find( OnFind );
return PAIR === undefined ? '' : PAIR.getResponse();
}
メールのテキストを作成する関数
function CreateMailText( item_and_answer_pairs )
{
const NAME = GetAnswer( item_and_answer_pairs, '氏名' );
const AGE = GetAnswer( item_and_answer_pairs, '年齢' );
const SEX = GetAnswer( item_and_answer_pairs, '性別' );
const TEXT =
`${NAME}様
ご回答ありがとうございます。
以下の内容で承りました。
----------------------------------
氏名: ${NAME}
年齢: ${AGE}歳
性別: ${SEX}
----------------------------------`;
return TEXT;
}
トリガーを設定する
スクリプトエディタでトリガーを追加し、先ほど定義したOnSubmitForm
関数をフォーム送信時に呼び出すようにする。
これでフォームを送信すると、下記の内容のメールがフォームに入力したメールアドレスへ送られる。
***様
ご回答ありがとうございます。
以下の内容で承りました。
----------------------------------
氏名: ***
年齢: 〇〇歳
性別: △△
----------------------------------