GASでメール送信を自動化する方法 基本コード・一括送信・定期実行を解説

GASでメール送信を自動化する方法 基本コード・一括送信・定期実行を解説

「スプレッドシートの顧客リストから一括でメールを送りたい」「毎朝のレポートメールを自動で送信する仕組みを作りたい」。GAS(Google Apps Script)を使えば、Gmailからのメール送信をプログラムで自動化し、手作業による送信の手間とミスを大幅に削減できます。

GASのメール送信機能は、MailAppクラスまたはGmailAppクラスを使って実装します。スプレッドシートのデータと組み合わせれば、宛先ごとに宛名や内容を差し替えた個別メールの一括送信、条件に応じた通知メールの自動送信、定期的なレポートメールの自動配信といった処理が、無料で実現可能です。

この記事では、GASによるメール送信の基本コード、スプレッドシートからの一括送信の手順、定期実行の設定方法、そして送信上限や注意点まで、実務で使える内容をまとめています。

確認したいポイント結論詳細
GASでメール送信はできるか?Gmailから自動送信が可能MailAppまたはGmailAppクラスを使い、数行のコードでGmailからメールを送信できます
一括送信はできるか?スプレッドシート連携で可能スプレッドシートの送信リストからデータを読み取り、宛先ごとに差し込みメールを一括送信できます
定期的な自動送信はできるか?トリガーで定期実行が可能GASの時間ベースのトリガーを設定すれば、毎日・毎週など指定した間隔でメール送信を自動実行できます
送信数に上限はあるか?1日あたりの上限がある無料Googleアカウントは1日100通、Google Workspaceは1日1,500通が送信上限です

この記事でわかること

・GASでメールを送信する基本コードと2つのクラスの違い

・スプレッドシートからの一括送信の手順

・HTML形式のメールやファイル添付の方法

・トリガーによる定期自動送信の設定方法

・送信上限と運用時の注意点

\ 業務自動化・DX推進のご相談はネクストスケールへ /
▶ 相談予約はこちら
目次

GASによるメール送信の基本|MailAppとGmailAppの違い

GASでメールを送信するには、MailAppクラスとGmailAppクラスの2つの方法があります。それぞれの違いと使い分けを理解しましょう。

MailAppクラスとGmailAppクラスの比較

比較項目MailAppGmailApp
送信メソッドMailApp.sendEmail()GmailApp.sendEmail()
HTMLメール対応(htmlBodyオプション)対応(htmlBodyオプション)
ファイル添付対応対応
送信元の変更不可エイリアスから送信可能
下書き作成不可GmailApp.createDraft()で可能
適したケースシンプルな通知メール高度なGmail操作が必要な場合

シンプルなメール送信であればMailAppで十分です。送信元アドレスの切り替え(エイリアス)や下書き作成が必要な場合は、GmailAppを使います。

基本のメール送信コード

GASでメールを送信する最もシンプルなコードは以下のとおりです。

function sendSimpleEmail() {

  MailApp.sendEmail({

    to: ‘recipient@example.com’,

    subject: ‘自動送信テスト’,

    body: ‘これはGASから送信されたテストメールです。’

  });

}

sendEmailメソッドのオプションとして、to(宛先)、subject(件名)、body(本文)を指定するだけでメールが送信されます。CCやBCCを追加する場合は、ccやbccオプションを使います。

GASの公式リファレンスは、Googleの開発者向けドキュメントで確認できます(参考:Google Apps Script MailApp)。

スプレッドシートからの一括メール送信

GASの真価を発揮するのが、スプレッドシートのデータと連携したメール送信です。宛先ごとに宛名や内容を差し替えた個別メールを一括送信する方法を解説します。

ステップ1:送信リストのスプレッドシートを準備する

まず、メール送信に必要なデータを記載したスプレッドシートを準備します。最低限必要な列は、メールアドレス・宛名・件名・本文・送信済みフラグの5列です。

A列:メールアドレスB列:宛名C列:件名D列:本文E列:送信済み
tanaka@example.com田中様打合せのご案内(本文テンプレート)
suzuki@example.com鈴木様打合せのご案内(本文テンプレート)

送信済みフラグ列を用意しておくと、送信済みの行をスキップできるため、二重送信を防止できます。

ステップ2:一括送信のGASコードを記述する

以下は、スプレッドシートの送信リストからメールを一括送信するコード例です。

function sendBulkEmails() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(‘送信リスト’);

  const data = sheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {

    const [email, name, subject, body, sent] = data[i];

    if (sent) continue; // 送信済みはスキップ

    const personalBody = body.replace(‘{name}’, name);

    MailApp.sendEmail({ to: email, subject: subject, body: personalBody });

    sheet.getRange(i + 1, 5).setValue(new Date()); // 送信日時を記録

  }

}

このコードは、送信リストシートの2行目以降を順に処理し、E列(送信済みフラグ)が空の行だけにメールを送信します。本文内の{name}を宛名に置換し、送信後にE列に送信日時を記録します。

ステップ3:テスト送信で動作を確認する

一括送信を実行する前に、自分のメールアドレスでテスト送信を行い、件名・本文・差し込み内容が正しいことを確認しましょう。テスト用に1行だけデータを入れた状態で実行し、受信したメールの内容をチェックします。

テストが完了したら、送信リストの全データを入力して本番実行します。誤送信を防ぐため、テスト行のデータは本番実行前に削除しておきましょう。

\ 業務自動化・DX推進のご相談はネクストスケールへ /
▶ 資料請求はこちら

HTML形式のメール送信とファイル添付

ビジネスメールでは、装飾されたHTMLメールやファイル添付が必要になることがあります。GASではどちらにも対応しています。

HTML形式のメール送信

メール本文にHTMLを使用する場合は、sendEmailメソッドのhtmlBodyオプションを使います。

MailApp.sendEmail({

  to: ‘recipient@example.com’,

  subject: ‘月次レポート’,

  body: ‘HTMLメールが表示できない環境用のテキスト’,

  htmlBody: ‘<h2>月次売上レポート</h2><p>詳細は添付をご確認ください。</p>’

});

bodyとhtmlBodyの両方を指定しておくと、HTML表示に対応していないメールクライアントではbodyのテキストが表示されるため、互換性が確保されます。

ファイルを添付して送信する

Googleドライブ上のファイルをメールに添付する場合は、attachmentsオプションを使います。

const file = DriveApp.getFileById(‘ファイルID’);

MailApp.sendEmail({

  to: ‘recipient@example.com’,

  subject: ‘資料送付’,

  body: ‘添付ファイルをご確認ください。’,

  attachments: [file.getAs(MimeType.PDF)]

});

DriveApp.getFileByIdでGoogleドライブのファイルを取得し、getAsでPDF形式に変換して添付しています。スプレッドシートをPDFに変換して添付する場合にもこの方法が使えます。

トリガーによる定期自動送信の設定方法

GASのトリガー機能を使えば、メール送信を指定したスケジュールで自動実行できます。

時間ベースのトリガーの設定手順

1. GASエディターの左メニューにある時計アイコン(トリガー)をクリックします。

2. 「トリガーを追加」ボタンをクリックします。

3. 実行する関数(例:sendBulkEmails)を選択します。

4. イベントのソースを「時間主導型」に設定します。

5. 時間ベースのトリガーのタイプ(毎日・毎週・毎月など)と時間帯を選択します。

6. 「保存」をクリックして設定を完了します。

たとえば、「毎朝9時にレポートメールを自動送信する」設定であれば、時間ベースのトリガーを「日タイマー」にして、時間帯を「午前9時〜10時」に設定します。

スプレッドシートの変更をトリガーにする方法

時間ベースのトリガーのほかに、スプレッドシートの編集やフォームの送信をトリガーにしてメールを送信することも可能です。

Googleフォームからの問い合わせがあった場合に、自動で確認メールを返信する仕組みは、「フォーム送信時」トリガーで実現できます。フォームの回答がスプレッドシートに記録されると同時にGASが起動し、回答者のメールアドレスに確認メールを自動送信します。

GASメール送信の注意点と上限

GASでメール送信を運用する際に、知っておくべき制約と注意点を整理します。

注意点1:1日あたりの送信上限がある

GASからのメール送信には、1日あたりの送信数に上限があります。

無料のGoogleアカウント:1日100通

Google Workspace(有料):1日1,500通

この上限は、MailAppとGmailAppの合計であり、CC/BCCも1通としてカウントされます。送信上限を超えると、当日中はメール送信がブロックされます。大量送信が必要な場合は、送信を複数日に分散するか、外部のメール配信サービスとの連携を検討しましょう。

注意点2:送信前に残りの送信可能数を確認する

MailApp.getRemainingDailyQuota()メソッドを使うと、当日の残り送信可能数を取得できます。一括送信の処理の冒頭でこの値をチェックし、送信リストの件数が残り送信可能数を超える場合は処理を中断する設計にしておくと安全です。

注意点3:二重送信を防止する仕組みを入れる

GASのトリガーが意図せず複数回実行された場合や、手動実行とトリガー実行が重なった場合に、同じメールが複数回送信されるリスクがあります。送信済みフラグをスプレッドシートに記録し、送信済みの行はスキップするロジックを必ず実装してください。

注意点4:送信元はGmailアカウントのアドレスになる

GASから送信されるメールの送信元アドレスは、GASを実行しているGoogleアカウントのGmailアドレスです。GmailAppクラスを使えばエイリアスからの送信も可能ですが、事前にGmailの設定でエイリアスを登録しておく必要があります。

注意点5:GASの実行時間制限に注意する

GASには1回の実行につき6分(無料アカウント)の時間制限があります。大量のメールを送信する場合は、1回の実行で処理できる件数を制限し、残りは次回のトリガー実行で処理する設計にしましょう。

業務効率化のアイデアをより幅広く検討したい方は、業務効率化アイデア55選の記事もあわせてご確認ください。AI活用による業務改善については、ネクストスケールのAIコンサル・AX伴走支援のサービスもご活用ください。

\ 業務自動化・DX推進のご相談はネクストスケールへ /
▶ 相談予約はこちら

まとめ

GAS(Google Apps Script)を使えば、Gmailからのメール送信をプログラムで自動化できます。MailAppクラスの数行のコードで基本的なメール送信が可能であり、スプレッドシートのデータと組み合わせれば、宛先ごとの差し込みメール一括送信も実現できます。

HTMLメールやファイル添付にも対応しており、GASのトリガー機能を使えば毎日・毎週の定期送信も自動化できます。運用にあたっては、1日あたりの送信上限(無料100通/Workspace 1,500通)、二重送信の防止、GASの実行時間制限(6分)に注意が必要です。

まずはテストメールの送信から始めて、スプレッドシート連携、差し込み送信、定期実行と段階的に機能を追加していくアプローチがおすすめです。

AIコンサル・AX伴走支援サービスご紹介資料

社外AI役員サービスご紹介資料
  • サービス資料のページ例:社外AI役員とは
  • サービス資料のページ例:AI活用による企業変革の支援内容

この資料でこんなことがわかります!

  • 社外AI役員とは
  • 支援内容
  • 導入の進め方
  • 導入実績・効果

\3ステップで簡単入力/

\ 業務自動化・DX推進のご相談はネクストスケールへ /
▶ 資料請求はこちら

この記事の監修者

石丸真平

石丸真平

株式会社ネクストスケール 代表取締役

株式会社ネクストスケールの代表。「AI時代に勝てる企業組織を共に創る」を掲げ、法人向けの生成AI研修とAX(AIによる企業変革)の伴走支援を手がける。経営課題の整理からAI活用領域の設計、ツール選定、業務への組み込み、社内定着、ROI測定までを一気通貫で支援。単なる効率化ではなく、経営戦略としてAIを活かす視点での支援を得意とする。Xでは「本当に仕事で使えるAI」をテーマに、実務で使えるノウハウを発信している。
この記事をシェアする
  • URLをコピーしました!

関連事例

他の成功事例を見る
目次

AI活用を経営成果につなげる
実践ヒントがわかる資料

社外AI役員の支援内容や導入の進め方を、わかりやすくご紹介します。

  1. 資料表紙

必要事項をご入力ください

フォームを読み込んでいます…