Google Apps Script 時短ツール

【残業2割減】GASでBCCかCCでメールを送信

お仕事おつにゃッス🐈

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

メールでBCCかCCに設定して、上司や同僚に一斉送信するのに多大な時間と労力を費やしていませんか?

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

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

  • 決まった人物にBCCかCCのメールを送信したい
  • 送信漏れやメールの設定ミスを減らしたい
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

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

GASでBCCかCCでメールを送信するイメージ

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

スプレッドシートに登録しているメールアドレスにBCCかCCで送信するアプリを作成します。

あなたは取引先全員にメールを送信しますが、これを1回ずつ送信してたら莫大な時間と労力が必要です。

また、上司や先輩にはBCC設定しますが、送信漏れの不安が残ります。

しかし、GASなら1クリックで送信を自動化しつつ、BCCかCCを設定して対象者全員に送信できます。

したがって、1つの動作で全てが終わるメールアプリを実現できます。

メールをBCCかCCで送信する準備

GASでメールをBCCとCCで一斉送信する準備します。ファイルは2つ必要です。

必要なファイル

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

Google ドキュメントの設定

Googleドキュメントでメールの本文を作成します。文章内の {customer} には、「リスト」シートから取得した名前( 姓+名 )が入ります。Google ドキュメントの編集は以上です。

GASでBCCかCCの設定をしてメールを送信するGoogle ドキュメントの設定

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

顧客データを登録するスプレッドシートを作成していきます。

Google スプレッドシートは、データを管理するデータベースとして扱います。

「姓」,「名」,「メールアドレス」の計3つを列Aから列C の1行目に見出しを記入します。

GASでBCCかCCの設定をしてメールを送信するGoogle スプレッドシートの設定

個別の顧客情報を記入していきます。

後からテストで送信するので、自身が所有しているメールアドレスに書き換えます。

今回は例として顧客情報を1人だけ記入していますが、2人以上でも問題ありません。

GASでBCCかCCの設定をしてメールを送信するGoogle スプレッドシートの設定でメールアドレスを登録

シートの名前を変更します。

右クリックして「リスト」と名前をつけます。Google スプレッドシート の編集は以上です。

GASでBCCかCCの設定をしてメールを送信するGoogle スプレッドシートのシートの名前を変更

サンプルコードを貼り付ける場所

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

上バーの「拡張機能」の中にある「Apps Script」をクリック。ここにコードを書きます。

GASをスプレッドシートに記入する際の「Apps Script」の表示

メールをBCCかCCで送信するサンプルコード

BCCとCCに設定したGメールの一括送信するサンプルコードの公開と説明をしていきます。

解説の項目

  • サンプルコード
  • A. メールに送信する内容を設定
  • B. 操作するスプレッドシートの定義
  • C. BCCまたはCCで送るメールアドレスの取得
  • D. Google ドキュメントからメール本文を取得して送信

サンプルコード

右上にあるマークを押すとコードのコピペを一瞬でできます。また、コード内で文頭にアルファベットが付いているコメントごとに、詳細を説明していきます。

function sendMail() {
  //A.メールに送信する内容を設定
  const DOC_URL = 'Google ドキュメントのURL';
  const senderName = '送り主の名前'; 
  const subject = 'メールのタイトル';

  //B.操作するスプレッドシートの定義
  const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const listSheet = spreadSheet.getSheetByName('リスト');  
  const listLastRow = listSheet.getLastRow();
  
  //C.BCCまたはCCに送るメールアドレスの取得
  let ccAddress = ""; //BCCまたはCCで送るメールアドレスの列
  for(var i=2; i<=listLastRow; i++){
    const mailAddress = listSheet.getRange(i,9).getValue();
    ccAdress += mailAddress + ",";
  }

  //D.Google ドキュメントからメール本文を取得して送信
  const openDoc = DocumentApp.openByUrl(DOC_URL); //Google ドキュメントのURLを取得
  let wholeText = openDoc.getBody().getText(); //取得したドキュメントの本文を読み込み
  const recipient =  listSheet.getRange(2,4).getValue(); //toのメールアドレス
  const customerName =  listSheet.getRange(2,2).getValue()
                       + 
                        " " 
                       +
                        listSheet.getRange(2,3).getValue(); //送信先の氏名
  const options = {
                    name: senderName,
                    cc  : ccAddress 
                  };
  let body = wholeText.replace("{customer}", customerName); //テキスト内の{customer}を上書き
  MailApp.sendEmail(recipient, subject, body, options); //メールをCCで送信

}

A. メールに送信する内容を設定

//A.メールに送信する内容を設定
 const DOC_URL = 'メールの本文になる Google ドキュメントのURL';
 const senderName = '送り主の名前'; 
 const subject = 'メールのタイトル';

3つの定数を定義し、「' '」の中をそれぞれ書き換えます。

定数 DOC_URL は Google ドキュメントのURLを取得方法を取得します。

Google ドキュメントのURLの取得の方法

ドライブ内で、メールの本文を記入した Google ドキュメントを保存している場所に移動します。

GASでBCCかCCでメールを送信するときにメールの本文になるGoogle ドキュメントのURLの取得

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

GASでBCCかCCでメールを送信するときにメールの本文になるGoogle ドキュメントの「リンクを取得」をクリック

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

GASでBCCかCCでメールを送信するときにメールの本文になるGoogle ドキュメントの「リンクのコピー」をクリック

B. 操作するスプレッドシートの定義

 //B.操作するスプレッドシートの定義
  const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const listSheet = spreadSheet.getSheetByName('リスト');  
  const listLastRow = listSheet.getLastRow(); 

編集するGoogle スプレッドシートを指定します。

getLastRowメソッドでは、空白ではない最後のセルの行番号を取得します。この例では「4」になります。

最終行を取得するメソッドの詳細はこちら

【5分で解決】GASでスプレッドシートの最終行と最終列を取得

続きを見る

C. BCCまたはCCで送るメールアドレスの取得

  //C.BCCまたはCCで送るメールアドレスの取得
  let ccAddress = ""; //BCCまたはCCで送るメールアドレスの列
  for(var i=2; i<=listLastRow; i++){
    const mailAddress = listSheet.getRange(i,9).getValue(); //セルからメールアドレスを取得
    ccAdress += mailAddress + ",";
  }

for文でメールアドレスをコンマで区切った文字列を作成し、変数 ccAddress に代入します。

出力する文字列は「b@mail.com, c@mail.com, d@mail.com」となります。

D. Google ドキュメントからメール本文を取得して送信

  //D.Google ドキュメントからメール本文を取得して送信
  const openDoc = DocumentApp.openByUrl(DOC_URL); //Google ドキュメントのURLを取得
  let wholeText = openDoc.getBody().getText(); //取得したドキュメントの本文を読み込み
  const recipient =  listSheet.getRange(2,4).getValue(); //toのメールアドレス
  const customerName =  listSheet.getRange(2,2).getValue()
                       + 
                        " " 
                       +
                        listSheet.getRange(2,3).getValue(); //送信先の氏名
  const options = {
                    name: senderName,
                    cc  : ccAddress 
                  };
  let body = wholeText.replace("{customer}", customerName); //テキスト内の{customer}を上書き
  MailApp.sendEmail(recipient, subject, body, options); //メールをCCで送信

スプレッドシートとドキュメントから得たデータからメールを作成してCCで送信します。

定数options では、CCに設定したの送信先のメールアドレスを指定します。

この例では、定数ccAddress に代入したアドレスをCCで送信しますが、option内の「cc」を「bcc」に書き換えるとBCCで送信します。

コードの解説は以上です。

メールを送信するテスト

実際にGoogle Apps Script からメールを送信します。

Apps Scriptの上バーの文字が「sendMail」になっていたら「実行」を押します。

GASでBCCかCCでメールを送信する関数の実行

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

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

続きを見る

問題がなければメールが届きます。Google ドキュメント内の{custom}が氏名に書き換わっていることも確認できます。

GASでBCCかCCでメールを送信した結果

【残業半減】GASを使ったメール送信方法

この記事ではBCCとCC送信する方法を紹介しました。

GASでは他にも、1クリックで一斉送信ファイルを添付して送信もできます。

当サイトでコピペOKのサンプルコードも用意していますので、ぜひご活用ください。

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

続きを見る

【コピペOK】GASでメールの送信で添付ファイルを追加

続きを見る

おわりに | GASでさらにスキルを高めるには

以上、Google Apps Script を使ってメールをBCC&CC設定して自動送信する方法でした。

そのままコピペして日常業務で使いやすいように改修したり、プログラミングの練習や動作確認用に使ってみましょう。

GASでさらに業務効率化する場合、参考書やプログラミングスクールを使うとあなた自身でアプリを作るスキルが身に付きます

GASユーザーのあっきょがおすすめの勉強方法はこちら↓

スクール経験者のあっきょが82社から5つ厳選して紹介してるッス!
あっきょ

次回の記事もご期待ください!

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