Google Apps ScriptでGoogleフォームの回答を自動返信メールで通知する方法

NO IMAGE

はじめに

Google フォームを使ってアンケートや問い合わせを受け付けた際に、自動で返信メールを送信したいと思ったことはありませんか?
手動で返信するのは手間がかかるため、自動化できると便利です。

そこで、Google Apps Script(GAS)を使って、Google フォームの回答が送信された際に、自動でメールを返信するスクリプトを作成しました。
このスクリプトを使えば、フォームの回答者に確認メールを送ったり、管理者に通知を送ったりすることができます。

スクリプトの概要

このスクリプトは以下の処理を行います。

  1. Google フォームの回答が送信されると自動でトリガーが実行される
  2. 回答者に自動返信メールを送信
  3. 必要に応じて管理者にも通知メールを送信

スクリプトのコード

以下のコードをGoogle Apps Scriptのエディタに貼り付けてください。

function sendAutoReply(e) {
  var responses = e.response.getItemResponses();
  var email = "";
  var messageBody = "【Googleフォームのご回答ありがとうございます】\n\n以下の内容で回答を受け付けました。\n\n";

  responses.forEach(response => {
    var question = response.getItem().getTitle();
    var answer = response.getResponse();
    
    if (question.includes("メールアドレス")) { // 回答者のメールアドレスを取得
      email = answer;
    }
    
    messageBody += "【" + question + "】\n" + answer + "\n\n";
  });

  if (email) {
    MailApp.sendEmail({
      to: email,
      subject: "【受付完了】Googleフォームの回答ありがとうございます",
      body: messageBody
    });
  }

  // 管理者への通知(必要に応じて)
  var adminEmail = "your-admin@example.com"; // 管理者のメールアドレス
  MailApp.sendEmail({
    to: adminEmail,
    subject: "Googleフォームの新しい回答",
    body: "新しい回答が送信されました。\n\n" + messageBody
  });

  Logger.log("自動返信メールを送信しました: " + email);
}

スクリプトの説明

  1. sendAutoReply(e)
    • フォームの回答データを取得
    • 回答者のメールアドレスを取得(質問名に「メールアドレス」が含まれるものを使用)
    • 回答内容をフォーマットして返信メールを作成
    • 回答者と管理者にメールを送信

使い方

  1. Google フォームを作成
    • Google フォームを作成し、必須項目として「メールアドレス」の入力欄を追加
  2. スクリプトを設定
    • Google フォームの「スクリプトエディタ」を開く
    • 上記のコードを貼り付けて保存
  3. トリガーを設定
    • 「編集」→「現在のプロジェクトのトリガー」を開く
    • 「トリガーを追加」ボタンを押す
    • 関数を sendAutoReply に設定
    • イベントの種類を「フォーム送信時」に設定
  4. テスト送信
    • Google フォームでテスト送信し、メールが届くか確認

応用:メールのフォーマットをHTMLにする

メール本文をHTML形式にしたい場合、以下のように変更できます。

MailApp.sendEmail({
  to: email,
  subject: "【受付完了】Googleフォームの回答ありがとうございます",
  htmlBody: "<h3>【Googleフォームのご回答ありがとうございます】</h3><p>以下の内容で回答を受け付けました。</p><ul>" +
            responses.map(r => "<li><strong>" + r.getItem().getTitle() + "</strong>: " + r.getResponse() + "</li>").join("") +
            "</ul>"
});

おわりに

このスクリプトを使えば、Google フォームの回答に対して自動返信メールを送ることができます。
問い合わせフォームやイベント登録フォームなど、さまざまな用途に活用してみてください!

GASカテゴリの最新記事