📬
【GAS】月初・月末にメールを送るコードの書き方
はじめに:月初や月末にメールを送りたい
月初や月末に何らかのメールを送るのは、どこの企業でもありがちな作業だと思います。
これが地味にメンドウ…
Gmailの予約送信機能を使ってもいいのですが、年始に12ヶ月分の予約をセットするのはちょっと不格好(Gmailの予約送信に数字が入っているのも気になる)。
そこでGoogle apps script(GAS)を使ってメール自動送信する発想になるのですが「月初や月末だけ送る設定」が意外に難しい。
スプレッドシートに日程表を作って、読み込ませて送信してもいいのですが、今回はもっとシンプルな方法を紹介します。
この記事の対象者
- GAS初心者の方
- 経理関係のお仕事の方
- 月初や月末にメールを定期送信したい方
コードを使うための準備
特にありません。
スクリプトだけでも動きます。
コードの紹介
月初に送る
function gessyo() {
//今日の00:00を作成する
const now = new Date();
const y = now.getFullYear();
const m = now.getMonth();
const d = now.getDate();
const today = new Date(y, m, d, 0, 0, 0);
//月初を作成(1日に設定)
const firstDateOfMonth = new Date(y, m, 1, 0, 0, 0);
//月初でなければ中止
if (today.getTime() !== firstDateOfMonth.getTime()) return
const subject = `メールのタイトル`;
const body = `メールの本文`;
//メール送信
GmailApp.sendEmail(`めーるあどれす@gmail.com`, subject, body);
}
月末に送る
function getsumatsu() {
//今日の00:00を作成する
const now = new Date();
const y = now.getFullYear();
const m = now.getMonth();
const d = now.getDate();
const today = new Date(y, m, d, 0, 0, 0);
//月末を作成(日付を0にすると1つ前の月の月末になる)
const endDateOfMonth = new Date(y, m, 0, 0, 0, 0);
//月末でなければ中止
if (today.getTime() !== endDateOfMonth.getTime()) return
const subject = `メールのタイトル`;
const body = `メールの本文`;
//メール送信
GmailApp.sendEmail(`めーるあどれす@gmail.com`, subject, body);
}
メール送信のコードはお好みでアレンジをお願いします。
おわりに
new Date
のところを少し工夫するだけで、簡単に月初や月末にメールが送れます。
営業日の概念はないので、土日でも送ってしまいますが、メールなのでOKだと思っています。
こちらのコードを使って、月初や月末に定期メールを送る仕事を効率化しましょう!!
参考
GASおじさんのブログ
Discussion