Google Apps Scriptを使ってGmailでメルマガみたいに一斉送信する方法
最終更新日:2026年8月7日
はじめに
| 項目 | Google Apps Script | Excel VBA | Python |
|---|---|---|---|
| 主な用途 | Google Workspace自動化 | Excel業務自動化 | 汎用自動化・データ分析 |
| 学習難易度 | 低(JavaScript系) | 中 | 低〜中 |
| 実行環境 | クラウド(無料) | Windows/Excel必須 | ローカル or クラウド |
| Googleサービス連携 | 最高 | 低 | API経由で可 |
この記事ではGoogle Apps Script(通称GAS)を使ってGmailからメルマガのように一斉送信する方法について紹介していきます。有料のメルマガスタンドを使う必要もなく簡単に設定できるので導入を考えている方はぜひ試してみてください。
ただし、この記事はある程度GASを触ったことがある方向けの記事になります。調べればすぐにわかることは省略している箇所もありますのでご了承ください。また、そのままコピペしていただいてもOKです。それではGoogle Apps Scriptを使ってGmailで一斉送信する方法を紹介します。
この記事でわかること
Google Apps Scriptを使ってGmailでメルマガみたいに一斉送信する方法
用意するものはGoogleスプレッドシートとGoogleドキュメントです。まずはスプレッドシートを開きます。ここでは以下のように設定しますが、任意で変更してください。
タイトル:メール一斉送信リスト
A列:会社名
B列:姓
C列:名
D列:アドレス
2行目以降は宛先の情報を入力します。

リストができたらスクリプトエディタを起動します。「拡張機能」>「Apps Script」(旧UIでは「ツール」>「スクリプトエディタ」)でGoogle Apps Scriptを開いて、以下のように入力します。

ソースコードはこちらです。そのままコピー可能です。
function sendMail() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const values = sheet.getRange(1, 1, lastRow, 4).getValues();
const doc = DocumentApp.openById('ドキュメントIDを入力');
const docText = doc.getBody().getText();
const subject = 'メール一斉送信テスト'; //メールの件名
const senderName = {name: 'ぐーぐるたろう'}; //差出人名
for (let i = 1; i < lastRow; i++) {
const company = values[i][0]; //会社名
const lastName = values[i][1]; //姓
const firstName = values[i][2]; //名
const mailAddress = values[i][3]; //アドレス
const body = docText
.replace('{会社名}', company)
.replace('{姓}', lastName)
.replace('{名}', firstName);
GmailApp.sendEmail(mailAddress, subject, body, senderName);
}
}
「メールの件名」「差出人名」は任意で変更してください。関数名や変数も任意で変更してください。ソースコードが書けたら保存しておきます。このとき、「許可の確認」が求められたらサクッと許可しておきましょう。
また、ソースコード内にドキュメントIDと書いているので次はドキュメントを作成していきます。このドキュメント作成はメールの本文に該当しますので、必ず必要な手順です。ではGoogleドキュメントを開きましょう。
ドキュメントを開けたら、以下のように作成していきます。

ドキュメントのタイトル名はメールの件名と合わせておくとわかりやすいと思います。会社名、姓、名を入力する場合は「{}(波カッコ)」で括ります。文章の形式は自由ですが、ビジネスメールの場合は上記のように設定すると良いでしょう。
メールの本文を作成し終えたら、このGoogleドキュメントをGoogle Apps Scriptに紐付けます。紐付けるといっても簡単です。ドキュメントのURL内にあるIDをスクリプトエディタに記述するだけです。
const doc = DocumentApp.openById('ドキュメントIDを入力');
この部分ですね。今回はopenById()を使用していますが、openByUrl()でもOKです。できるだけコードを短くしたい場合はURLではなくIDを使用するとよいでしょう。
ドキュメントのIDの入力が完了し、他の任意で設定する箇所も入力が完了したら、実際にメールが一斉に送信されるかテストしてみましょう。
Google Apps Scriptのスクリプトエディタから、▶で実行をしてみます。これで無事に届くはずです。実際にGmail2つとさくらメールに一斉送信してみましたがこんな感じで届きましたので一応貼っておきます。


これでリストが増えても一斉送信が可能です。以上がGoogle Apps Scriptを使ってGmailでメルマガみたいに一斉送信する方法でした。ただし、Google Apps Scriptを使ってGmailでメールを一斉送信するには制限があります。
Google Apps Script使ってGmailでメールを送信するには制約がある?
Googleアカウントを無料版で使っている場合は1日に送信できる配信数が決まっていて100通のみになります。合計で100通なので、リストが25人いる場合は4回配信可能です。50人なら2回、100人なら1回だけです。リストが100人を超えるようであれば、数日にわけて配信する必要がでてくるので注意してください。無料アカウントなので仕方がありませんよね。Google Workspace(旧G Suite)に登録している場合は1日1500通まで配信可能です(送信上限はプランや契約状況により変わる場合があるため、正確な値は必ず最新の公式情報でご確認ください)。リストの数や配信数に応じて検討してみてください。
この記事のポイント
- スプレッドシートの宛先リストとGoogleドキュメントの本文テンプレートを組み合わせ、GmailAppで差し込み送信するのが基本の仕組み
- 本文テンプレートでは「{会社名}」のように波カッコで囲んだプレースホルダーを、replace()で実際の値に置き換える
- 1日の送信数には上限があり、無料のGoogleアカウントは100通、Google Workspaceは1500通が目安(正確な数値は公式情報を確認)
よくある質問
- Q. 送信数の上限に達するとどうなりますか?
- A. 上限に達すると、それ以上のメール送信がエラーになります。大量のリストに送信する場合は、日をまたいで分割送信するか、Google Workspaceへのアップグレードを検討してください。
- Q. スクリプトを実行しても権限エラーが出て動きません
- A. 初回実行時にGoogleアカウントへのアクセス許可を求められます。「許可を確認」から必要な権限をすべて許可してから再実行してください。
- Q. HTML形式のメールを送信することはできますか?
- A. GmailAppのsendEmail()の第4引数のオプションに
htmlBodyを指定することで、HTML形式のメール本文を送信できます。
関連記事
まとめ
Google Apps Scriptを使えば、意外と簡単にやりたいことが実現できます。一斉送信はメルマガのように使うこともできますし、社内報として利用することもできます。他にもGmailの未読を既読にしたり、自動で削除したりすることも可能です。Gmailで受信した特定のメールをLINEに通知することも可能です。
Google Apps Scriptは自分の「やりたい」を実現できるツールなのでいろんな「やりたい」を実現してみてください。この記事が少しでもお役に立てれば幸いです。
▼ アクロビジョンについて


