こんにちは、もりです。
みなさん、会社で、あんなことやこんなことの「期日」に追われていませんか?
「はっ、気がついたら今日期限のタスクが終わってない・・・」なんてことにならないよう、部署の誰かが、毎朝手動で一斉送信メールを送ったり。
そのメール通知作業、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などへの通知もできますね。
ぜひ活用してみてください。
 
								 
							
							
							
															 
							
							
							
															 
							
							
							
															 
										
					 
									
 
										
										
										
																	 
										
										
										
																	 
										
										
										
																	 
										
										
										
																	