Gmailの下書きを自動で作る でほぼ固定値ながらもメールの下書きを作成するプログラムをGAS(Google Apps Script)で書いてみました。
GASの実行を1回クリックするだけで、宛先(To、Cc)の設定とメール件名を自動的に行ってくれるプログラムでしたが、1クリックで1通のメール作成だけではちょっと物足りない。
1クリックで5~6通メール作成できたら、かなり効率化が図れるのでは?
1週間分のメール作成を1クリックで実行
今回は、前回作ったコードに手を加えて、
1週間分(最大7日分)のメールを自動的に作成されるようにしていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function myFunction () { var toAddr = "foo@sample.com"; var ccAddr = "bar@sample.com"; var mailBody = "" ; var mailHtmlBody = ""; var day = new Date(); var mailArgs = { cc: ccAddr, htmlBody: mailHtmlBody }; for (var i = 0; i < 7; i++){ var title = Utilities.formatDate(day, "Asia/Tokyo", "yyyy/MM/dd"); title = title + "_杉山達也_報告"; GmailApp.createDraft(toAddr, title, mailBody, mailArgs); day.setDate(day.getDate() + 1); } } |
for文で7回繰り返し、
実行の度に1日加算して件名が変わるようにしてあります。
前のコードでは、週末の土日も関係なく7日分作ってくれます。
仕事で使う場合は土日は使いたくないので・・・
土曜日と日曜日分のメール下書きを作らないように条件分岐も加えていきます。
↓変更分のみ
1 2 3 4 5 6 7 8 9 |
for (var i = 0; i < 7; i++){ if (day.getDay() > 0 && day.getDay() < 6) { var title = Utilities.formatDate(day, "Asia/Tokyo", "yyyy/MM/dd"); title = title + "_杉山達也_報告"; GmailApp.createDraft(toAddr, title, mailBody, mailArgs); } day.setDate(day.getDate() + 1); } |
未来日が下に来るように修正
ここまでのコードを実行すると、
一番遠い未来日のメールが最後に作られるため、Gmailの下書きBOXで一番上に表示されます。
実際に使おうとしたら、下書きボックスの下の方から当日の下書きメールを探して使うのがちょっと嫌なので、下書きメールの作成順を逆にしていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function myFunction () { var toAddr = "foo@sample.com"; var ccAddr = "bar@sample.com"; var mailBody = "" ; var mailHtmlBody = ""; var day = new Date(); day.setDate(day.getDate() + 6); var mailArgs = { cc: ccAddr, htmlBody: mailHtmlBody }; for (var i = 0; i < 7; i++){ if (day.getDay() > 0 && day.getDay() < 6) { var title = Utilities.formatDate(day, "Asia/Tokyo", "yyyy/MM/dd"); title = title + "_杉山達也_報告"; GmailApp.createDraft(toAddr, title, mailBody, mailArgs); } day.setDate(day.getDate() - 1); } } |
8行目で日付を7日分加算しているのと、
21行目で今まで加算していた日数を、減算させただけです。
これで、1回実行すると、
1週間分のメール下書きを作成してくれて、土日分はスキップするプログラムが完成しました。
次回はこのプログラムをローカルから実行する。
(WEB APIとして実行呼び出しする)事をやっていこうと思います。
コメント