GoogleSite‎ > ‎tips‎ > ‎

フォーム更新時にメールを送信する方法・その2

◎フォーム更新時にフォーム送信内容も含め送る設定(スクリプトの知識が必要)
※こちらはエクセルのVBAで機能を追加したり、JavaScriptでプログラムが書ける人向けになります。

(1)スクリプトエディタを開く
フォームのドキュメントで
ツール→スクリプト→スクリプトエディタ
を選択する。

(2)メール送信用の関数を作成
function sendContactUsMail(e) {
  try {
    var recipient = "送信したいアドレスを直書き";
    var timestamp = e.values[0];
    var name = e.values[1];
    var group = e.values[2];
    var email = e.values[3];
    var message = e.values[4];

    var body = "";
    body = body + "timestamp:" + timestamp + "\n";
    body = body + "name:" + name + "\n";
    body = body + "group:" + group + "\n";
    body = body + "email:" + email + "\n";
    body = body + "message:" + message + "\n";

    MailApp.sendEmail(recipient, "お問合せフォームに書込みがありました", body);

  } catch(e) {
    MailApp.sendEmail(recipient, "お問合せフォームに書込みがありました", "内容の取得処理で問題が発生しました");
  }
}

※valuesの配列番号は、フォームのカラムの先頭からの順です。A列が0、B列が1…となります。

(3)トリガーを設定
フォームのドキュメントで
トリガー→「Current script's triggers...」→「現在のスクリプトのトリガー」画面を開き
以下の内容でトリガーを追加
Run:作成した関数名(今回の場合「sendContactUsMail」)
Events:「Form spreadsheet」「On form subit」

こんな感じで出来ます。簡易な記述にとどめましたが、ある程度のリテラシがあればこれで十分でしょう。スクリプトをいじくればHTMLメール形式で送信することや、問い合わせをした人に内容確認メールを送ることも比較的容易にできます。