こんにちは、もりです。
みなさん、会社で、あんなことやこんなことの「期日」に追われていませんか?
「はっ、気がついたら今日期限のタスクが終わってない・・・」なんてことにならないよう、部署の誰かが、毎朝手動で一斉送信メールを送ったり。
そのメール通知作業、GASで自動化しましょう!
スポンサーリンク
指定期日までの残日数を自動通知するBot
このBotは2つの処理から成り立ちます。
- 【処理1】指定期日までの残日数を求める処理
- 【処理2】処理1で求めた値をメール送信する処理
【スクリプト】
ここでは、「確定申告」を例としたスクリプトを紹介します。Momentライブラリを使用すると、日付の差分を簡単に取得できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/* * GAS用Moment.js * プロジェクトキー:MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48 */ function NotifyRemainingDays() { const deadline = Moment.moment('2020/4/16'); //何かの期日 const today = Moment.moment(); /* 2つの日付を含まない差分日数を取るので、+1する (例)4/1と4/5を比較すると 3 が返る*/ const remainingDays = deadline.diff(today, 'days') + 1; sendMail_(deadline,remainingDays); } function sendMail_(deadline, day) { deadline = deadline.format('M月DD日'); //※月が2桁の場合はMMとする const recipient = 'xxxxx@xxxxx.xxx'; //宛先メールアドレス const subject = '【確定申告】期日まであと' + day + '日!'; //件名 const body = 'もりさん\n\n' + '確定申告の期日は【' + deadline + '】です。' + '\n\nいつやるの?今日でしょ!'; const options = { name: 'リマインドBot', //差出人の表示名 cc: 'xxxxx@xxxxx.xxx' } GmailApp.sendEmail(recipient, subject, body, options); } |
To,CCに複数のメールアドレスを指定したい場合は、このように「カンマ区切り」で列挙します。
‘test1@xxx.com,test2@xxx.com,test3@xxx.com’
sendEmailメソッドのoptionsで設定できる内容は、公式リファレンスをご覧ください。
【自動通知】トリガーを設定する
あとは、自動でメール送信するよう、トリガーを設定しましょう。「現在のプロジェクトのトリガー」をクリック。
「実行する関数を選択」では、「NotifyRemainingDays」を選択します。トリガーのタイプや日付・時刻は自由に設定しましょう。最後に「保存」をクリック。
【実行結果】
Outlookで受信したイメージです。良いですね!
スマートフォンのSMSなどにも送信できます。
この記事では「メール送信」の処理にしましたが、各種WebサービスのAPIを使えば、Chatwork、Slack、LINEなどへの通知もできますね。
ぜひ活用してみてください。
スポンサーリンク
スポンサーリンク