【GAS】Gmailで送信予約を自動化する方法

GASGmailApp,sendEmail

Google Apps Script(GAS)を活用することで、Gmailで送信予約を自動化できます。送信予定日時を指定したメールを効率的に管理し、自動で送信することで業務効率を大幅に向上させられます。この記事では、GASを使った送信予約の方法や具体的なコード例を解説します。

GASで送信予約を行うメリット

  • 手動操作不要: GASを活用すれば、Gmailアプリを開かずに自動で送信予約が可能です。
  • 一括送信の効率化: スプレッドシートと連携することで、複数のメールを異なるタイミングで送信できます。
  • 柔軟なスケジュール管理: トリガー機能を利用して、送信タイミングを細かく設定できます。

Gmailの送信予約を実現する基本方法

GASで送信予約を行うには以下の2つが必要です。

  1. スクリプトで送信処理を記述: GmailAppのsendEmailメソッドを使用してメールを送信します。
  2. トリガーの設定: Google Workspaceの時間トリガー機能を利用して、指定したタイミングでスクリプトを実行します。

基本構文

以下の構文を使ってメールを送信できます。

GmailApp.sendEmail(to, subject, body, options);
引数説明
to宛先メールアドレス
subjectメールの件名
bodyメール本文
optionsCC、BCC、添付ファイルなどのオプション設定(任意)

具体例1: 単一メールの送信予約

以下のコードは、特定の日時にメールを送信する例です。

javascriptコードをコピーするfunction scheduleEmail() {
  const recipient = "example@gmail.com"; // 宛先
  const subject = "送信予約メール"; // 件名
  const body = "このメールは送信予約機能を使用して送信されています。"; // 本文

  // メール送信
  GmailApp.sendEmail(recipient, subject, body);
}

トリガーの設定

  1. Google Apps Scriptエディタを開く。
  2. メニューから「スクリプトエディタ」→「トリガー」を選択。
  3. 「トリガーを追加」からscheduleEmail関数を選択し、実行日時を設定。

これで指定した日時にメールが送信されます。

具体例2: スプレッドシートを使った複数メールの送信予約

スプレッドシートに送信予定のメール情報(宛先、件名、本文、送信日時)を記載し、GASで一括送信する方法です。

スプレッドシート構造

宛先件名本文送信日時
user1@example.comお知らせ1本文内容12025-01-03 10:00:00
user2@example.comお知らせ2本文内容22025-01-03 14:00:00

コード例

javascriptコードをコピーするfunction scheduleEmailsFromSheet() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();

  const now = new Date();

  data.forEach((row, index) => {
    if (index === 0) return; // ヘッダー行をスキップ

    const recipient = row[0];
    const subject = row[1];
    const body = row[2];
    const scheduledTime = new Date(row[3]);

    // 送信予定日時が現在時刻を超えている場合にメール送信
    if (scheduledTime <= now) {
      GmailApp.sendEmail(recipient, subject, body);
      Logger.log(`送信完了: ${recipient}`);
    }
  });
}

定期実行トリガーの設定

  1. 「トリガーを追加」からscheduleEmailsFromSheet関数を選択。
  2. 時間ベースのトリガー(例: 毎分、毎時)を設定し、送信予約を定期的にチェック。

注意点

Gmail APIの制限

  • 送信上限: GmailのAPIを使用したメール送信には1日100通(無料アカウント)の制限があります。Google Workspaceアカウントでは上限が拡張されます。

時間精度

  • トリガーは分単位で動作するため、秒単位の精密な送信はできません。

権限の確認

  • GASを初めて実行する際に、Gmailへのアクセス許可を与える必要があります。

まとめ

この記事では、GASを使ったGmailの送信予約の方法を解説しました。

  • 単一メールを送信予約する方法
  • スプレッドシートを使った複数メールの送信予約
  • トリガーを活用した自動化の手順

これらを活用すれば、メール送信の効率が大幅に向上します。ぜひ試してみてください!