【GAS】Googleフォームの回答後、自動返信メールを送る方法

2021年12月21日

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関数をフォーム送信時に呼び出すようにする。

フォーム送信時のトリガー

これでフォームを送信すると、下記の内容のメールがフォームに入力したメールアドレスへ送られる。

***様

ご回答ありがとうございます。
以下の内容で承りました。
----------------------------------

氏名: ***
年齢: 〇〇歳
性別: △△

----------------------------------