BLOGTIMES
2012/09/24

Google Docs をメールフォームとして使う

  googleappsscript 
このエントリーをはてなブックマークに追加

Google Docs のフォームは便利なのですが、自分以外に通知を送ろうとすると Google Apps Script を使うしかないようです。
今回は簡単なメールフォーム的なものを作りたかったので、下記のエントリを参考に(というか、ほぼ流用させてもらって)作成してみました。

 ・Googleドキュメントのフォーム機能からGoogle Apps Scriptを使ってメール送信 [C!]

以下、作成メモ。

sendMailFromForm.js

今回使った Google Apps Script はこんな感じ。

// based on http://creazy.net/2011/03/google_form_mailsend.html function sendMailFromForm() { var subject = " からのお問い合わせ"; var body = "------------------------------------------------------------\n"; var footer = "------------------------------------------------------------\n\n" + "mail form script"; // メール送信先 var admin = "admin@example.com"; var cc = ""; // Cc: var bcc = ""; // Bcc: var reply = ""; // Reply-To: var to = "mail_to@example.com"; try{ // スプレッドシートの操作 var sh = SpreadsheetApp.getActiveSheet(); var rows = sh.getLastRow(); var cols = sh.getLastColumn(); var rg = sh.getDataRange(); // メール本文作成 for (var j = 1; j <= cols; j++ ) { var col_name = rg.getCell(1, j).getValue(); // カラム名 var col_value = rg.getCell(rows, j).getValue(); // 入力値 body += "【"+col_name+"】\n"; body += col_value + "\n\n"; if( col_name == "メールアドレス" ){ //フィールド名を指定 subject = col_value + subject; } } body += footer; // 送信先オプション var options = {}; if ( cc ) options.cc = cc; if ( bcc ) options.bcc = bcc; if ( reply ) options.replyTo = reply; // メール送信 MailApp.sendEmail(to, subject, body, options); }catch(e){ MailApp.sendEmail(admin, "[Error] Googleフォームからメール送信中にエラーが発生", e.message); } }

作成が終わったら、フォームが更新されたときにメールが飛ぶようにトリガーを下記のように設定してやります。
sendMailFromForm のトリガー - Google Docs をメールフォームとして使う

送信されるメールのサンプル

上記でフォームが送信されると、下記のようなメールを受け取ることができます。
メールアドレス以外は項目名、項目数はなんでもかまいません。

Subject: user@example.com からのお問い合わせ ------------------------------------------------------------ 【タイムスタンプ】 Mon Sep 24 2012 20:21:17 GMT+0900 (JST) 【お名前】 hsur 【会社名】 cles.jp 株式会社 【所属部署】 ○○部 【メールアドレス】 user@example.com 【電話番号】 03-1234-5678 【お問い合わせ内容】 てすと てすと てすと ------------------------------------------------------------ mail form script

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/5242
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン