Google フォームから入力された内容をメール送信する
前に Google ドキュメントで作成したWEBフォームに問い合わせがあったら、内容をメール送信する機能を追加する という記事を書いたのですが、 2014年4月25日現在、Google フォームを作成すると、フォームとその回答用のスプレッドシートが別に作成されるように変わっていました。
過去記事ではスプレッドシートにトリガーを追加していましたが、フォームにトリガーを追加するほうがスクリプトがシンプルになって良さそうでしたので、やり方をメモ。
で、すでに親切丁寧な記事を書いていらした方がいたので、そちらを参照にすると良いかと思います。
http://jmatsuzaki.com/archives/11545
それだけではアレなので、自分のスクリプトも晒しておきます。
自分の使い道は、フォームから入力された内容を自分宛てに送信するという用途なので、ccやbccを使わないシンプルな内容です。
入力項目を全部表示させるだけなら、カラムの名前に依存しなくていいので、過去記事のスクリプトより短くなっています。
function sendForm(e){ // 件名、本文 var subject = "[片平堂HPからの問い合わせ]"; var body = "問い合わせ内容\n------------------------------------------------------------"; // メール送信先 var to = "xxxxx@xxxx.xx"; var itemResponses = e.response.getItemResponses(); for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; body += '\n\n['+itemResponse.getItem().getTitle()+']\n\n'; body += itemResponse.getResponse(); } MailApp.sendEmail({to:to,subject:subject, body:body}); }
他、トリガー追加時に起動失敗の通知を追加しています。
通知をクリック。
通知タイミングはimmediatelyにしました。
エラーはこんな感じで届きます。
送信されるメールは以下の様な感じになります。 お名前、メールアドレス、内容という項目でフォームを作成した場合です。
2014/4/25追記: Google Appsでフォームを作成して全体に公開する場合は、フォーム設定の下記のチェックを外しましょう。