※当サイトの商品・サービスのリンク先にPRを含みます。

Google Apps Script 時短ツール

【残業3割減】GASでメールの一斉送信を自動化

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

複数の相手に同じ内容のメールを一斉送信するのは残業の原因になりますよね?

この記事ではそのお悩みを、コピペOKのGoogle Apps Scriptのコードで解決します。

あっきょ
この記事は以下で悩んでいる人におすすめッス!

  • 1クリックで大量のメールを一斉送信したい
  • メールに費やす時間を減らして毎日の残業から解放されたい
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

誰でも無料で簡単にできるので、お気軽に学んでいきましょう!

0円でプログラミングを学べるスクール

侍テラコヤのロゴ

侍テラコヤはサブスク型のプログラミングスクール。

  • 50種類以上の教材を学び放題
  • 回答率100%の質問掲示板が無制限
  • 無料で学べる「フリープラン」

仕事後の夜遅くでもスキルアップするならおすすめです。

メールを一斉巣送信するアプリのイメージ

GASでメールを一斉送信するイメージ

1クリックでスプレッドシートに登録したメールアドレスに一斉送信するアプリを作成します。

例えば、あなたが取引先全員にメールを送信するなら莫大な時間と労力が必要。

また、本文のはじめに「〇〇様」と1つずつ書き換えるのでミスの原因にもなります。

GASならすべてのメールアドレスに「○○様」付きで自動送信できます。

メールを一斉送信する準備

Google Apps Script でメールを一括で大量に送信する準備をします。ファイルは2つ必要です。

必要なファイル

  • Google ドキュメント ・・・ 送信するメール本文の作成
  • Google スプレッドシート ・・・ 顧客データの保存 & GASのプログラムの実行

Google ドキュメントの設定

Google ドキュメントにメールの本文になる文章を記入します。

文章内の {customer} には、「リスト」シートの「姓」と「名」を合わせた名前が入ります。

Google ドキュメントの編集は以上です。

Google Apps Scriptでメールを一斉送信するのに使うGoogle ドキュメントの説明

Google スプレッドシートの設定

メールアドレスを含めた顧客データのスプシを作成していきます。

今回は「姓」、「名」、「メールアドレス」の計3つを1行目に記入していきます。

Google Apps Scriptでメールを一斉送信するのに使うGoogle スプレッドシートの準備

2行目からそれぞれの顧客データを登録します。

ソースコード確認後に送信テストするので、メールアドレスは自身のメールアドレスに書き換えましょう。

Google Apps Scriptでメールを一斉送信するのに使うGoogle スプレッドシートの準備で顧客データを記入

「シート1」を右クリックして名前を変更します。

顧客データのワークシートなので「リスト」と名付けます。

Google スプレッドシートの編集は以上です。

Google Apps Scriptでメールを一斉送信するのに使うGoogle スプレッドシートの準備でシート名を「リスト」に変更

サンプルコードを貼り付ける方法

サンプルコードはGoogle スプレッドシートにコピペ。

上バーの「拡張機能」の中にある「Apps Script」をクリックしてコードを貼り付けます。

GASをスプレッドシートに記入する際の「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 ドキュメントのURLの取得方法

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

Google ドキュメントのURLの取得で「リンクを取得」をクリック

右側に「リンクをコピー」をクリックすると自動でコピー。

コピーしたリンクを定数 DOC_URL に上書きします。

Google ドキュメントの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 Apps Script でメールを一斉送信するsendMail関数の実行

「このアプリはGoogleで確認されていません」と表示した場合はこちら

【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法

続きを見る

メールが届いてドキュメントの {custom} が書き換わったことも確認できます。

メールが届かない場合は、アドレスの打ち間違いが考えられるのでご確認ください。

Google Apps Script でメールを一斉送信するsendMail関数を実行した結果

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

初心者でも学びやすいプログラミングスクールを3つ紹介します。

というのも、プログラミング独学の挫折率は60%近くと高め

エラーを解決できなかったり相談できる人がいなかったりと理由はさまざまです。

モチベを保てる環境を整えたのがスクールで挫折率を1割未満に抑えられます。

そこで、デイコーで調査した82社から厳選して解説します。

  • テックアカデミー | 未経験から月5万の副収入を目指す
  • インターネット・アカデミー | Excel自動化で残業減
  • 侍テラコヤ | 50種類以上の教材を学び放題

テックアカデミー | 未経験から月5万の副収入を目指す

はじめての副業コースのトップイメージ
引用:テックアカデミー

テックアカデミーは総合満足度95.3%で未経験者に人気のプログラミングスクール。

テキスト形式の教材で進めながら不明点を現役エンジニアのメンターに質問します。

  • 週2回のマンツーマンメンタリング
  • 毎日15〜23時までのチャットサポート
  • 課題レビューとアドバイス

夜遅くまで対応するので退勤後も気軽に相談できます。

「はじめての副業コース」ではGASの開発ベースになったJavaScriptを使ってWeb制作を学習。

学習後はメンターの支援を受けつつスクールの独自案件で副業の実績を積み上げます。

案件報酬と1件につき1~5万円と高単価ッスよ!
あっきょ
卒業生の口コミ33件紹介 口コミ・評判はこちら
無料相談でアマギフ500円分もらえる 公式サイト

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

インターネット・アカデミーのトップ画面
引用 : インターネットアカデミー

インターネット・アカデミーは初心者から最短距離でスキルを習得するスクール。

初心者が挫折しないサポートが10個が特徴で以下はその一部。

  • 動画授業が24時間見放題
  • 1年間受講受け放題
  • 技術面の質問ができるチャットサービス
  • 受講生限定のセミナーや交流会
  • 手厚い転職準備サポート&求人紹介

卒業後には未経験からエンジニア転職するキャリアプランも築けます。

Python×Excel自動化講座はエクセル自動化に特化したカリキュラム。

売上伝票の集計や顧客リスト抽出など実践的に学びながらPythonの基礎基本を身に着けます。

いつもの作業を効率化して残業を減らすならおすすめ。

受講者の8割近くが初心者で学びやすいのがわかるッス!
あっきょ
82社から8つ厳選 Pythonを学べるスクール
1分で無料カウンセリング予約 公式サイト

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

侍テラコヤのトップ画面
引用 : 侍テラコヤ

侍テラコヤは50教材以上を定額で受け放題のオンラインスクール。

回答率100%の質問掲示板などの初心者でも挫折しない環境が整っているのが特徴です。

フリープランは無料で教材の一部を閲覧可能

GASを学ぶ場合、「業務自動化コース」で基礎基本から学べます。

まずは0円で教材を利用したい人にはおすすめです。

Python や HTML/CSS などのほかの言語も学べるッス!
あっきょ
卒業生の口コミ23件紹介 口コミ・評判はこちら
「フリープラン」でGASを無料で学習 公式サイト

まとめ | GASでメール送信を楽にしよう!

以上、Google Apps Script を使ったメールの一斉送信を自動化する方法でした。

そのままコピペしたり、プログラミングの練習や動作確認用に使ったりしてみましょう。

今回紹介したサンプルコード以外にも、GASでメールの操作は可能。

ヒューマンエラーが起きやすく時間がかかる作業をGASに任せましょう。

不明点やスクール選びで悩んでいるならデイコーのお問い合わせまでご連絡を。

あなたのお力になります。

-Google Apps Script, 時短ツール
-, , , , , , , , , , , , , , , , , , ,