2014年5月9日金曜日

Google Apps スクリプトで自動メール送信

皆さんこんにちは。

今回は、Google Apps スクリプトで自動メール送信の作成手順をご紹介致します。

自動メール送信スクリプト機能概要

・Google Spread Sheet の一覧からメール送信宛先アドレスを取得する
・メールを送信したい日時指定ができること
・一度メールが送信されたメールは次は送信しない


1、準備

Google スプレッドシートを開き以下のようにメールを送信するための情報を入力しておきます。
A列:メールが送信されたらここに自動的に送信日付が表示される仕組みです。
B列:メール送信宛先のメールアドレスを記載します。(TO)
C列:今回はサンプルのため、C列はメールの件名になります。
D列:メールを送信したい日付を記載します。
E列:メールを送信したい時刻を入力しておきます。
※注意:
入力されている日付、時刻が現在の時刻より過去の日時で、送信済みフラグが空の場合、メールが送信されます。


ABCDE
1送信済みフラグメールアドレス名前日付時刻
2xxxxxxx@xxxxxx.co.jp花岡2014/05/0813:42:00
3xxxxxxx@xxxxxx.co.jp田中2014/05/0813:44:00
4xxxxxxx@xxxxxx.co.jp田辺2014/05/0817:05:00
5

2、スクリプトエディターでスクリプトの実装


それでは、行毎解説していきます。
行数説明
3スプレッドシートにデータが格納されている範囲を決めています。
getRange(開始行, 開始列, 終了行, 終了列)
今回データの開始行は2行目、列は1列目、となっています。終了行は可変しますので、最後の行をメソッドで取得しています。
4取得したデータを格納するための2次元配列を準備しています。
6スプレッドシートに入力されているデータ(行)分ループさせます。
7~12スプレッドシートの日付、時刻を取得し、必要なデータを抽出しています。TimeZoneはJSTでストリング型に変換しています。
14~16現在の時刻を取得(JST)しています。
18~37現在時刻と、スプレッドシートで取得した日時を比較し、スプレッドシートに記載された日時が来ていなければ、何にもせず、時間が過ぎていて、且つ、メール送信済みフラグが無ければ、メール送信情報を組み立てます。
36~37”送信済みフラグ”列に送信した日付をセットします。
※Google Apps Scriptで時間型どうしの比較方法が良く分からなかったため、文字列で比較をしています。

3、一分置きにスクリプトを実行する設定

最後に実装したスクリプトを1分毎実行されるよう設定しています。

3-1、スクリプトエディタから「リソース」→「現在のプロジェクトのトリガー」を選択します。


3-2、一分置きに実行するように設定します。

「実行」から実行するFunctionを選択します。
「イベント」で時間主導型、分タイマー、1分ごとを選択します。


0 件のコメント:

コメントを投稿