📬

【GAS】月初・月末にメールを送るコードの書き方

2025/01/23に公開

はじめに:月初や月末にメールを送りたい

月初や月末に何らかのメールを送るのは、どこの企業でもありがちな作業だと思います。

これが地味にメンドウ…

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おじさんのブログ
https://uncle-gas.com/datetime-manual-of-gas/

Discussion