2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Googleフォーム回答後の自動応答メールを自前の文面で送る

Posted at

はじめに

Googleフォームには、回答後にメールで自動応答する機能が備わっています。
このメールを標準の文面ではなく、好きな文面で送りたいと思ったので調べてみました。
回答を編集するための URL をメールに含めることもできます。

対象の人

  • Googleフォームの標準の自動応答メールとは違う内容で送りたい人
    • 好きな文面で送りたい、とか
    • 回答内容はメールに入れたくない、とか
  • メール以外の方法で通知したい人
    • 今回は扱っていませんが参考になると思います

さっそく

任意のGoogleフォームを作ります。
フォームができたら画面右上の歯車を押して、標準機能のメールが送られないようにしておきます。

image.png

次に、画面右上の から「スクリプトエディタ」を開きます。

2.png

続いて、下記のような関数を書いて下さい。
この関数はフォームで回答される度に走る想定です。

  • やっていること
    • 回答者のメールアドレスに
    • お礼の文面と回答日時、回答編集用URLを送信

なお、引数 e についての詳細は https://developers.google.com/apps-script/guides/triggers/events#form-submit_1 を確認下さい。

Code.gs
function onSubmit(e) {
  
  const resp = e.response;
  
  // 回答者のメールアドレス
  const mailAddress = resp.getRespondentEmail();
  if (!mailAddress) {
    return;
  }
  // 回答日時
  const timestamp = Utilities.formatDate(resp.getTimestamp(), 'JST', 'yyyy-MM-dd HH:mm:ss');
  // 回答編集用URL
  const editRespUrl = resp.getEditResponseUrl();
  
  // 本文
  const body =
    'アンケートにご回答頂きありがとうございました。\n' +
    `${timestamp} に回答を受け付けました。\n` +
    '\n' +
    '回答内容を変更したい場合は下記から行えます。\n' +
    `${editRespUrl}`;

  // メール送信  
  MailApp.sendEmail({
    to: mailAddress,
    subject: 'アンケート御礼',
    body: body
  });
}

次に、フォームで回答される度に上記の関数が動くようにトリガーを設定します。
画面の左側のメニューから、トリガーを押します。

image.png

続いて画面右下の「トリガーを追加」を押します。

image.png

トリガーは下の画像のように設定して保存します。

  • 実行する関数:onSubmit
  • イベントの種類を選択:フォーム送信時

3.png

保存した内容が一覧に出てくれば準備完了です。
これでフォームに回答すると、以下のような自前の応答メールが自動で送られます。

キャプチャ.PNG

所感

ここに書いた内容を応用すると、メールを送る以外にもたとえば Slack などに投稿することもできそうです。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?