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

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

タップできる目次
メールを一斉巣送信するアプリのイメージ

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

Google スプレッドシートの設定
メールアドレスを含めた顧客データのスプシを作成していきます。
今回は「姓」、「名」、「メールアドレス」の計3つを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 ドキュメントが保存されている場所まで移動。

ドキュメントにカーソルを合わせて右クリックし、「リンクを取得」を選択。

右側に「リンクをコピー」をクリックすると自動でコピー。
コピーしたリンクを定数 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 にはフルネーム(姓 + 名)を代入し、ドキュメント内の {costomer} に replaceメソッドで上書します。
不備がない場合、MailAppクラスでメールを送信して完了です。
このクラスの詳細は以下の記事をご参考に。
-
【基本】GASでメールを送信するsendMailメソッドの3つの使い方
続きを見る
コードの説明は以上です。
メールを一斉送信するテスト
実際に、GASで作成したメールの一括送信をテストしていきましょう。
Apps Scriptの上バーの文字が「sendMail」になっていたら「実行」を押します。

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

初心者でも学びやすい&挫折しないスクール3選

初心者でも学びやすいプログラミングスクールを3つ紹介します。
というのも、プログラミング独学の挫折率は60%近くと高め。
エラーを解決できなかったり相談できる人がいなかったりと理由はさまざまです。
モチベを保てる環境を整えたのがスクールで挫折率を1割未満に抑えられます。
そこで、デイコーで調査した82社から厳選して解説します。
- テックアカデミー | 未経験から月5万の副収入を目指す
- インターネット・アカデミー | Excel自動化で残業減
- 侍テラコヤ | 50種類以上の教材を学び放題
テックアカデミー | 未経験から月5万の副収入を目指す

おすすめコース | はじめての副業コース |
受講料(税込) | 87,600円~(8週間プラン+給付金適応後) |
分割払い(24回) | 4,996円 |
受講形式 | オンライン |
強み |
|
テックアカデミーは総合満足度95.3%で未経験者に人気のプログラミングスクール。
テキスト形式の教材で進めながら不明点を現役エンジニアのメンターに質問します。
- 週2回のマンツーマンメンタリング
- 毎日15〜23時までのチャットサポート
- 課題レビューとアドバイス
夜遅くまで対応するので退勤後も気軽に相談できます。
「はじめての副業コース」ではGASの開発ベースになったJavaScriptを使ってWeb制作を学習。
学習後はメンターの支援を受けつつスクールの独自案件で副業の実績を積み上げます。

インターネット・アカデミー | Excel自動化で残業減

おすすめコース | Python×Excel自動化講座 |
受講料(税込) | 118,000円 |
分割払い(36回) | 3,800円~ |
受講形式 |
|
強み |
|
インターネット・アカデミーは初心者から最短距離でスキルを習得するスクール。
初心者が挫折しないサポートが10個が特徴で以下はその一部。
- 動画授業が24時間見放題
- 1年間受講受け放題
- 技術面の質問ができるチャットサービス
- 受講生限定のセミナーや交流会
- 手厚い転職準備サポート&求人紹介
卒業後には未経験からエンジニア転職するキャリアプランも築けます。
Python×Excel自動化講座はエクセル自動化に特化したカリキュラム。
売上伝票の集計や顧客リスト抽出など実践的に学びながらPythonの基礎基本を身に着けます。
いつもの作業を効率化して残業を減らすならおすすめ。

侍テラコヤ | 50種類以上の教材を学び放題

おすすめコース | フリープラン |
受講料(税込) | 0円~ |
受講形式 | オンライン |
強み |
|
侍テラコヤは50教材以上を定額で受け放題のオンラインスクール。
回答率100%の質問掲示板などの初心者でも挫折しない環境が整っているのが特徴です。
フリープランは無料で教材の一部を閲覧可能。
GASを学ぶ場合、「業務自動化コース」で基礎基本から学べます。
まずは0円で教材を利用したい人にはおすすめです。

まとめ | GASでメール送信を楽にしよう!
以上、Google Apps Script を使ったメールの一斉送信を自動化する方法でした。
そのままコピペしたり、プログラミングの練習や動作確認用に使ったりしてみましょう。
今回紹介したサンプルコード以外にも、GASでメールの操作は可能。
あわせて読みたい
-
【残業2割減】GASでBCCかCCでメールを送信
続きを見る
あわせて読みたい
-
【コピペOK】GASでメールの送信で添付ファイルを追加
続きを見る
ヒューマンエラーが起きやすく時間がかかる作業をGASに任せましょう。
不明点やスクール選びで悩んでいるならデイコーのお問い合わせまでご連絡を。
あなたのお力になります。