2012年9月22日土曜日

Google Apps ScriptのMailAppとフォームからのメール自動送信あれこれ

Google Apps Scriptはウェブ上にあまり情報が多くないので、苦労したことを書き残してみます。今回は自作スクリプトを使って、フォーム送信時に自動でメールを送信することをやっていました。

実行トリガーを忘れずに設定せよ

当たり前ですが、スクリプトを実行してメールを送信するには、誰かが「スクリプト実行」の引き金を引かねばなりません。デバッグ時は手作業で実行するでしょうが、実運用時にはメニューから「トリガー」の設定を忘れて「フォームを送信してるのにメールが送信されないなー」ということにならないよう気をつけましょう。

自動送信メールの送信者メールアドレスを変更するには

Class MailApp::sendEmailにも引数一覧が書かれていますが、送信者メールアドレス(From:)を指定できません。送信者は自動的にスクリプト実行者のGoogleアカウントとなります。つまり送信者を変更したい時には、別のGoogleアカウントに対してそのスクリプトを共有し、そのアカウントから開いて、スクリプト実行のトリガーを設定することになります。ふつうは、フォーム送信時に設定することが多いでしょう。

なお通常のブラウザでは、起動中のcookieは複数のタブを開いていても共有していますから、複数のGoogleアカウントから同じスクリプトを見たい場合には、Chromeでいうところのシークレットモード(別名としてプライベート ブラウズなど)を使うか、ChromeとFirefoxなどまったく別のブラウザを使うとよいでしょう。

保存せよ

編集したのに保存してない……よくある話。

バージョン管理せよ

実験的機能として、バージョン管理ができるようになりました。リファクタリングや機能追加の際に、古いスクリプトをコピーして―などとするのはあまり効率が良くないので、同じファイルでバージョン管理しましょう。
英語メニューですが、下から3番目がバージョン管理
他になにかありましたら、twitterの @takot まで。