スプレッドシートの送信リストからメールを一括送信する仕組みは、GAS(Google Apps Script)を使えば無料で構築できます。
AIzen株式会社では、Google Workspace活用の支援を通じて、手作業のメール送信をGASで自動化する仕組みの構築を数多く行ってきました。
本記事では、非エンジニアでも再現できるコード設定の手順から、送信上限への対応、テスト送信の進め方、ログ管理まで、実務で必要な設計を一通り解説します。
GASでメール送信を始める前に整理したい運用条件

GASでメール送信の仕組みを構築する前に、送信の全体像と運用条件を整理しておくことが重要です。運用条件が曖昧なまま構築を始めると、送信上限への対応漏れや宛名ミスの原因になります。
スプレッドシートの送信リストを使ってメールを送る全体像
GASによるメール送信の基本構成は、スプレッドシートに送信先の情報(メールアドレス、宛名、件名、本文など)を一覧化し、GASのスクリプトがその一覧を行ごとに読み取ってメールを送信する形です。
送信完了後は、各行に送信済みフラグを記録することで、二重送信を防ぎます。この仕組みにより、手動でのコピペ作業が不要になり、送信漏れや宛名間違いを構造的に防止できます。
手作業のコピペ送信で起こりやすい宛名ミスと送信漏れ
手作業でメールを送信する場合、宛名の差し替え忘れ、送信先の選択ミス、送信済みの相手への二重送信が頻繁に発生します。
特に数十件以上の送信先がある場合、担当者の注意力だけでミスを防ぐことは現実的ではありません。GASで送信処理を自動化することで、人的ミスの発生を仕組みとして防止できます。
GASでメール送信を始める前に確認したい送信対象・差し込み項目・実行タイミング
GASでメール送信を始める前に、送信対象(誰に送るか)、差し込み項目(宛名、会社名など個別に変える部分)、実行タイミング(手動実行か、トリガーによる自動実行か)の3点を確認しておきます。
これらが決まっていれば、スプレッドシートの列設計とGASの処理フローをスムーズに設計できます。
スプレッドシートからGASでメール送信する基本手順

ここでは、スプレッドシートの送信リストからGASでメールを送信するための基本手順を解説します。列設計、コード設定、差し込み処理の3ステップで構築します。
送信リスト用スプレッドシートの列設計を決める
送信リスト用のスプレッドシートには、最低限として「メールアドレス」「宛名」「件名」「本文」「送信済みフラグ」の5列を用意します。差し込み項目が増える場合は、会社名や担当部署などの列を追加します。
| 列名 | 内容 | 例 |
|---|---|---|
| A: メールアドレス | 送信先のメールアドレス | example@company.co.jp |
| B: 宛名 | メール本文に差し込む宛名 | 田中様 |
| C: 件名 | メールの件名 | 【ご案内】サービス開始のお知らせ |
| D: 本文 | メールの本文テンプレート | {宛名}、お世話になっております。… |
| E: 送信済み | 送信完了フラグ | 送信済み / (空欄) |
GASでメール送信するコードを設定する
スプレッドシートのメニューから「拡張機能」→「Apps Script」を開き、送信処理のコードを記述します。
基本的な処理は、スプレッドシートの各行を読み取り、送信済みフラグが空の行に対してMailApp.sendEmail()でメールを送信し、送信後にフラグを書き込むという流れです。コードの記述に不安がある場合でも、テンプレートをコピーして送信リストの列番号に合わせて修正すれば動作します。
差し込み項目を使って宛名付きメールを作成する
本文テンプレート内に {宛名} や {会社名} といったプレースホルダーを設定し、GASの処理でスプレッドシートの値に置換することで、宛名付きの個別メールを生成できます。
replace()メソッドを使って差し込み処理を行うため、プレースホルダーの命名規則をスプレッドシートの列名と統一しておくと管理しやすくなります。
GASでメール送信する前に行いたいテストと確認手順

GASでメール送信を本番稼働させる前に、テスト送信で動作を確認することが不可欠です。テストを省略すると、誤送信や差し込みミスが本番で発生するリスクがあります。
本番送信前にテスト送信で確認したい項目
テスト送信で確認すべき項目は、宛名の差し込みが正しいか、件名と本文の内容が意図どおりか、送信元の表示名とメールアドレスが正しいか、送信済みフラグが正しく記録されるかの4点です。テスト用のメールアドレス(自分自身や社内メンバー)を使って確認します。
送信先を限定して段階的に動作確認する
初回のテストでは送信先を1〜2件に限定し、動作確認が取れてから送信件数を増やします。一気に全件送信してしまうと、問題発覚時の影響範囲が大きくなります。送信リストの先頭3行だけをテスト用にする、あるいはテスト専用のシートを別に用意する方法が実務的です。
件名・本文・差し込み値のずれを送信前にチェックする
差し込み項目のプレースホルダーとスプレッドシートの列名が一致しているかを送信前に確認します。プレースホルダーの表記ゆれ(全角・半角の違い、スペースの有無)があると、差し込み処理が動作せず、プレースホルダーがそのまま本文に表示されてしまいます。
GASでメール送信する際に把握したい送信上限と残数確認の方法

GASでメール送信を行う際に見落としやすいのが、Googleアカウントの種類によるメール送信上限です。上限を超えると送信が途中で停止するため、事前の確認が必須です。
無料アカウントとGoogle Workspaceで異なる送信上限
GASのメール送信上限は、アカウントの種類によって異なります。
| アカウント種別 | 1日の送信上限 |
|---|---|
| @gmail.com(無料) | 100件/日 |
| Google Workspace | 1,500件/日 |
この上限は、GASから送信するメールだけでなく、Gmailの手動送信分も含めた合計です。上限を超えた場合、エラーが返されてその日のメール送信が停止します。
MailApp.getRemainingDailyQuota()で当日の残数を確認する
GASには、当日の残り送信可能件数を取得するメソッド MailApp.getRemainingDailyQuota() が用意されています。送信処理の開始前にこのメソッドで残数を確認し、送信予定件数が残数を超える場合は処理を分割するロジックを組み込むことで、途中終了を防止できます。
送信上限で途中終了しないための分割送信の考え方
送信件数が上限に近い場合や、日をまたいで送信を行う場合は、送信処理を分割する設計が必要です。
たとえば、1回の実行で送信する件数を残数の80%以下に制限し、残りは翌日のトリガーで自動送信する仕組みにします。送信済みフラグをスプレッドシートに記録することで、分割送信でも二重送信を防げます。
弊社エンジニアからのコメント:
分割送信を設計する際は、
getRemainingDailyQuota()の値をそのまま信用しすぎないことも大切です。同じアカウントでGmail画面から手動送信している分もクォータに含まれるため、スクリプト実行時点の残数と実際の送信可能数にずれが出ることがあります。安全策として、残数の80%を上限に設定し、送信前後のクォータ値をログに記録する運用を推奨します。
GASでメール送信を安定運用するためのログ管理と再送設計

GASによるメール送信を継続的に運用するには、送信ログの記録とエラー時の再送設計が不可欠です。ログがなければ、送信トラブルの原因特定と再送対応が困難になります。
送信結果をスプレッドシートに記録するログ管理の方法
送信処理のたびに、送信日時、送信先、送信結果(成功/失敗)をスプレッドシートに記録します。
送信リストのシートに「送信日時」「送信結果」の列を追加する方法が最もシンプルです。エラーが発生した行には、エラーメッセージも記録しておくと、原因特定が早まります。
エラー発生時に未送信先を特定して再送する手順
送信がエラーで中断した場合、送信済みフラグが空欄の行が未送信先です。
スクリプトを再実行すれば、未送信の行だけを対象に送信処理が走るため、再送は手動でスクリプトを実行するだけで完了します。ただし、エラーの原因(送信上限超過、無効なメールアドレスなど)を先に確認してから再送を行う必要があります。
チームで運用するために残したい操作ルールと更新手順
複数の担当者が送信リストを管理する場合は、操作ルールを決めておくことが重要です。送信リストの編集権限、スクリプトの実行権限、テスト送信の手順を文書化し、担当者が交代しても運用が止まらないようにします。
GASでメール送信する方法が向いているケースと向いていないケース

GASによるメール送信は、すべての用途に万能というわけではありません。向いているケースと向いていないケースを把握したうえで、自社の要件に合った手段を選ぶ必要があります。
少量から中規模の一括案内を自動化したい場合
月に数十件から数百件程度の案内メールを定期的に送信する場合は、GASでのメール送信が適しています。スプレッドシートで送信リストを管理できるため、専用のメール配信ツールを導入するほどではない規模の業務に向いています。
大量配信や高度な配信管理が必要な場合
1日1,500件を超える大量配信、開封率やクリック率のトラッキング、配信停止管理(オプトアウト)が必要な場合は、GASではなくメール配信サービスの利用を検討すべきです。GASにはこれらの機能が標準で備わっていないため、運用の複雑さとリスクが増します。
GASでのメール送信とメール配信サービスを使い分ける判断軸
| 判断基準 | GASが適している | メール配信サービスが適している |
|---|---|---|
| 送信件数 | 数十〜数百件/日 | 1,000件以上/日 |
| トラッキング | 不要 | 開封率・クリック率の計測が必要 |
| 配信停止管理 | 手動で対応可能 | 法令準拠の自動管理が必要 |
| コスト | 無料 | 月額費用が発生 |
まとめ
GASでメール送信を自動化する際に押さえるべき要点は3つです。
- スプレッドシートの列設計とコード設定を行い、差し込みメールの送信基盤を構築すること。
- 送信上限の把握、テスト送信の実施、分割送信の設計で運用トラブルを事前に防ぐこと。
- 送信ログの記録と再送設計を整え、安定した運用を継続できる体制を作ること。
AIzen株式会社では、Google Workspaceを活用した業務自動化の開発支援を行っています。GASでのメール送信の仕組み構築でお悩みの場合は、無料相談をご活用ください。


コメント