お仕事おつにゃッス🐈
文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!
同じ内容のメールを一斉に送信するのは、多大な時間と労力が必要かつ残業の原因ですよね?
この記事ではそのお悩みを、コピペOKのGoogle Apps Scriptのコードで解決します。

- 1クリックで大量のメールを一斉送信したい
- メールに費やす時間を減らして、毎日の残業から解放されたい
- プログラミングでJavaScriptを学んだけど、何を作っていいかわからない
誰でも無料で簡単にできますので、お気軽に学んでいきましょう!
タップできる目次
メールを一斉巣送信するアプリのイメージ

1クリックでスプレッドシートに登録したメールアドレスに一斉送信するアプリを作成します。
あなたはお客様全員に同じ内容のメールを送信し、本文のはじめに「〇〇様」と1つずつ書き換える必要があります。これを毎回してたら莫大な時間と労力が必要です。
しかし、GASなら1クリックすると全てのメールアドレスに自動送信できます。
メールを一斉送信する準備
Google Apps Script でメールを一括で大量に送信する準備をします。ファイルは2つ必要です。
必要なファイル
- Google ドキュメント ・・・ 送信するメール本文の作成
- Google スプレッドシート ・・・ 顧客データの保存 & GASのプログラムの実行
Google ドキュメントの設定
Google ドキュメントにメールの本文になる文章を記入します。
文章内の {customer} には、「リスト」シートに登録されている顧客データの「姓」と「名」を合わせた名前が入ります。Google ドキュメントの編集は以上です。

Google スプレッドシートの設定
メールアドレスを含めた顧客データを登録しているスプレッドシートを作成していきます。
今回は「姓」、「名」、「メールアドレス」の計3つの顧客データを列A から列C の1行目に見出しを記入していきます。

2行目からそれぞれの顧客データを記入します。
ソースコード確認後に送信テストをするので、メールアドレスは自身のメールアドレスに書き換えましょう。

「シート1」を右クリックして名前を変更します。
顧客データのワークシートなので「リスト」と名付けます。Google スプレッドシート の編集は以上です。

サンプルコードを貼り付ける方法
サンプルコードはGoogle スプレッドシートにコピペします。
上バーの「拡張機能」の中にある「Apps Script」をクリック。ここにコードを書きます。

メールを一斉送信するサンプルコード
Gメールの一斉送信するサンプルコードの公開とコードの説明をしていきます。
解説の項目
- サンプルコード
- A, メールに送信する内容を設定
- B, 使用するスプレッドシートの定義
- C, 処理するスプレッドシートのセル番号の定義
- D, Google ドキュメントからメール本文を取得
- E, 顧客ごとにメールを送信
サンプルコード
右上にあるマークを押すとコードのコピペを一瞬でできます。
また、コード内で文頭にアルファベットが付いているコメントごとに、詳細を説明していきます。
function sendMail() {
//A.メールに送信する内容を設定
const DOC_URL = 'Google ドキュメントのURL';
const senderName = '送り主の名前';
const subject = 'メールのタイトル';
//B.使用するスプレッドシートの定義
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = spreadSheet.getSheetByName('リスト');
//C.処理するスプレッドシートのセル番号の定義
const LAST_NAME_COL = 1; //苗字の列番号
const FIRST_NAME_COL = 2; //名前の列番号
const MAIL_ADDRESS_COL = 3; //メールアドレスの列番号
const START_ROW = 2; //for構文で読み込み始める最初の行番号
const listLastRow = listSheet.getLastRow();
//D.Google ドキュメントからメール本文を取得
const openDoc = DocumentApp.openByUrl(DOC_URL);
let wholeText = openDoc.getBody().getText();
//E.顧客ごとにメールを送信
for (var a=START_ROW; a<=listLastRow; a++){
const recipient = listSheet.getRange(a,MAIL_ADDRESS_COL).getValue(); //メールアドレスを取得
const options = {name: senderName, from: sendMailFrom}; //「姓」と「名」を取得して、名前を作成
const customerName = listSheet.getRange(a,LAST_NAME_COL).getValue()+ " " +listSheet.getRange(a,FIRST_NAME_COL).getValue();
let body = wholeText.replace("{customer}", customerName);
MailApp.sendEmail(recipient, subject, body, options);
}
}
A, メールに送信する内容を設定
//A.メールに送信する内容を設定
const DOC_URL = 'メールの本文になる Google ドキュメントのURL';
const senderName = '送り主の名前';
const subject = 'メールのタイトル';
メールに送信する内容を定義し、3つの定数の「' '」の中を全て書き換えます。
特に、定数 DOC_URL は Google ドキュメントのURLに書き換え必須です。
Google ドキュメントのURLの取得方法は次に説明します。
Google ドキュメントのURLの取得の方法
まず、メールの本文が記入された Google ドキュメントが保存されている場所まで移動します。

Google ドキュメントにカーソルを合わせて右クリックするとメニューが現れます。その中の「リンクを取得」をクリックします。

右側に「リンクをコピー」をクリックするとコピー完了します。コピーしたリンクを定数 DOC_URL に上書きします。

B, 使用するスプレッドシートの定義
//B.使用するスプレッドシートの定義
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = spreadSheet.getSheetByName('リスト');
編集するGoogle スプレッドシートを指定します。
定数 spreadSheet は現在アクティブな状態のスプレッドシートを取得、定数 listSheet は名前が「リスト」のシートを取得します。
C, 処理するスプレッドシートのセル番号の定義
//C.処理するスプレッドシートのセル番号の定義
const LAST_NAME_COL = 1; //苗字の列番号
const FIRST_NAME_COL = 2; //名前の列番号
const MAIL_ADDRESS_COL = 3; //メールアドレスの列番号
const START_ROW = 2; //for構文で読み込み始める最初の行番号
const listLastRow = listSheet.getLastRow();
「リスト」シートのセル番号をそれぞれ取得します。
定数 listLastRow はセルに値が埋まっている最後の行番号を取得します。
最終行の番号を取得するgetLastRowメソッドの詳細は以下の記事をご参考ください。
-
【5分で解決】GASでスプレッドシートの最終行と最終列を取得
続きを見る
D, Google ドキュメントからメール本文を取得
//D.Google ドキュメントからメール本文を取得
const openDoc = DocumentApp.openByUrl(DOC_URL);
var wholeText = openDoc.getBody().getText();
メールの本文を記入したGoogle ドキュメントのURLを取得します。
また、ドキュメント内の文章をgetTextメソッドで読み込みます。
E, 顧客ごとにメールを送信
//E.顧客ごとにメールを送信
for (var a=START_ROW; a<=listLastRow; a++){
const recipient = listSheet.getRange(a,MAIL_ADDRESS_COL).getValue(); //メールアドレスを取得
const options = {name: senderName, from: sendMailFrom}; //「姓」と「名」を取得して、名前を作成
const customerName = listSheet.getRange(a,LAST_NAME_COL).getValue()+ " " +listSheet.getRange(a,FIRST_NAME_COL).getValue();
var body = wholeText.replace("{customer}", customerName);
MailApp.sendEmail(recipient, subject, body, options);
}
「リスト」シートに登録している顧客の数だけメールを1件ずつ送信します。
定数 costomerName にはフルネーム(姓 + 名)を代入し、Google ドキュメント内の {costomer} に replaceメソッドで上書します。
不備がない場合、MailAppクラスでメールを送信して完了です。このクラスの詳細は以下の記事をご参考に。
-
【基本】GASでメールを送信するsendMailメソッドの3つの使い方
続きを見る
コードの説明は以上です。
メールを一斉送信するテスト
実際に、GASで作成したメールの一括送信をテストしていきましょう。
Apps Scriptの上バーの文字が「sendMail」になっていたら、「実行」を押します。

「このアプリはGoogleで確認されていません」と表示される場合はこちら。
-
【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法
続きを見る
メールが届き、Google ドキュメントの {custom} が書き換わったことも確認できます。メールが届かない場合は、アドレスの打ち間違いの可能性がありますのでご確認ください。

【便利】メールの送信時にBCC設定やファイル添付するには?
この記事ではメールを一斉送信する方法を紹介しました。
GASを使えば、メールに必要な他のオプションも付けることができます。
例えば、GASでメールをBCCかCCに設定して送信やファイルを添付して送信などです。
当サイトでは、コピペOKのサンプルコードも用意していますのでぜひご活用ください。
-
【残業2割減】GASでBCCかCCでメールを送信
続きを見る
-
【コピペOK】GASでメールの送信で添付ファイルを追加
続きを見る
おわりに | GASでメール送信を業務効率化
以上、Google Apps Script メールを一斉送信する方法でした。
そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。
GASでさらに業務効率化したい場合、参考書やプログラミングスクールを使うとあなた自身でアプリを作るスキルが身に付きます。
プログラミング未経験者にもわかりやすく解説しています。
GASユーザーのあっきょがおすすめの勉強方法はこちら↓
次回の記事もご期待ください!