SANANEBLOG
GAS PR

Gmailを使用して定型メールを一括送信するツールの作成方法【CC・BCCも可能】【GAS】

記事内に商品プロモーションを含む場合があります

はじめに

今回の記事ではGAS(Google Apps Script)を使用して、Gmailで一括送信を行うツールの作成方法をご紹介します。

イベントの主催者や企業のマーケティングなど、大勢の人にメールを送信したい場面ではメールが一括で送信が可能になると事務作業の時短につながります。

本ツールのメリット

効率性:一括でのメール送信により、時間を大幅に節約できます。

パーソナライズ:受信者ごとにCC・BCC・文面などカスタマイズしたメールを送信可能です。

簡易性:プログラミング等特別な技術知識を必要とせず、基本的なGoogleサービスの知識だけで設定可能です。

費用効果:高価なメール送信ツールを購入する必要がなく、GASは無料で利用できます。

SANANE

ツールの作成自体は15分ほどです。GASを触ったことがない人でも簡単に作成可能です。

動作イメージ

SANANE

まずは簡単に今回の自動化処理の動作について説明します。

ツール自体は以下のようになっています。

  • 氏名:送信先の氏名。メール本文にも使用される。
  • メールアドレス:送信先のメールアドレス。
  • CC:CCに入れるメールアドレス。
  • BCC:BCCに入れるメールアドレス。
  • 送信元表示名:受信者のメールボックスに表示される名前。
  • 本文:メール件名・本文が記載してあるGoogleドキュメントのURL。

件名と本文は可読性を高めるためGoogleドキュメントを参照させております。これにより簡単にユーザごとに件名や本文を分けることができるようになっています。

また、メール件名・本文となるGoogleドキュメントは以下のようになります。

[SUBJECT][/SUBJECT]間がメールの件名となります。

また、{{NAME}}となっているところはスプレッドシートの「氏名」の部分に置き換わります。

これでプログラムを実行すると、以下のようなメールが受信者に届きます。

なお、送信元のメールアドレスプログラムを実行しているアカウントのメールアドレスになります

SANANE

[SUBJECT][/SUBJECT]間がメールの件名となり、{{NAME}}となっているところが「氏名」の部分に置き換わっているのが分かります。

作成方法

今回の自動化処理の作成には以下を使用していきます。

  • Google ドキュメント
  • Googleスプレッドシート
  • Google Apps Script
SANANE

①Googleドキュメントにメールの件名と本文を記載

②スプレッドシートにメールアドレスなどのメール設定を記載

③手動でGAS(Google Apps Script)を実行することでメール送信、という流れになります。

スプレッドシートの操作

まず、スプレッドシートにアクセスします。

アクセスしたら、[新しいスプレッドシートを作成]>[空白]をクリックして新規のスプレッドシートを作成します。

画像のようにヘッダー名を任意でつけておきます。

  • A1セル:氏名
  • B1セル:メールアドレス
  • C1セル:CC
  • D1セル:BCC
  • E1セル:送信元表示名
  • F1セル:件名・本文URL

上部バーの[拡張機能]>[Apps Script]をクリックします。

GASの操作

GASが新規タブで開きます。

次に実際にコードを記載していきます。もともと記載してある以下コード

function myFunction() {

}

削除して、新たに下記のコードをコピペしてください。

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getRange("A2:F").getValues();
  
  for (var i = 0; i < data.length; i++) {
    var name = data[i][0];
    var email = data[i][1];
    var cc = data[i][2];
    var bcc = data[i][3];
    var fromname = data[i][4];
    var docUrl = data[i][5];
    
    if (!docUrl) continue; // F列が空の場合、処理をスキップ
    
    // GoogleドキュメントのIDをURLから取得
    var docIdMatch = docUrl.match(/\/d\/([^/]+)/);
    if (!docIdMatch) {
      Logger.log('不正なGoogleドキュメントのURL: ' + docUrl);
      continue;
    }
    var docId = docIdMatch[1];
    var docText = DocumentApp.openById(docId).getBody().getText();
    
    var subjectMatches = docText.match(/\[SUBJECT\]\s*(.*?)\s*\[\/SUBJECT\]/);
    if (!subjectMatches) {
      Logger.log('件名が見つかりませんでした。ドキュメントのURL: ' + docUrl);
      continue;
    }
    var subject = subjectMatches[1].replace(/{{NAME}}/g, name);
    var body = docText.replace(subjectMatches[0], '').trim().replace(/{{NAME}}/g, name);
    
    if (email) {
      var emailOptions = {
        name: fromname,
        cc: cc,
        bcc: bcc
      };
      
      GmailApp.sendEmail(email, subject, body, emailOptions);
    }
  }
}

最後に「Ctrl + S」を押すか上部バーにある[プロジェクトを保存]をクリックするとスクリプトが保存されます。

GASの実行

Apps Script 上部バーの[▶実行]をクリックします。最初のスクリプトの実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、

[権限を確認]>[表示されているGoogleアカウント]>[詳細]>[無題のプロジェクト(安全ではないページ)に移動]>[許可]まで移動します。クリック後GASが実行されます。

Google ドキュメントの操作

続いて、メールの件名と本文を作成していきます。

Googleドキュメントにアクセスして、アクセスしたら、[新しいドキュメントを作成]>[空白]をクリックして新規のドキュメントを作成します。

[SUBJECT][/SUBJECT]間がメールの件名となります。

また、{{NAME}}となっているところはスプレッドシートの「氏名」の部分に置き換わります。

[SUBJECT]
{{NAME}}様への重要なお知らせ
[/SUBJECT]

{{NAME}}様

テスト株式会社からのご連絡です。

この度は弊社イベントにご参加いただき、誠にありがとうございました。
{{NAME}}様に、参加特典として割引クーポンをお送りします。
詳細は、近日中に別途メールにてご案内いたします。

お問い合わせや不明点がございましたら、お気軽にサポートまでお知らせください。

今後ともよろしくお願い申し上げます。

テスト株式会社 担当より

件名と本文を作成したら、作成したドキュメントのアドレスバーのURLをコピーします。

スプレッドシートのF列の送信したい受信者の行にペーストします。

複数Googleドキュメントを作成して文面を作成しておけば、送信したい人ごとにURLを分けて、メールの送信内容を変えることができます。

あとは他の「氏名」「メールアドレス」「CC・BCC(記入しなくても可)」「送信元表示名(空白であれば送信元メールアドレスになります)」を記入して、GASのタブの[▶実行]をクリックすることでメールを送信することができます。

【参考】ボタンの作成

スプレッドシート上にボタンを作成しておくことで、ボタンをクリックするだけで簡単にプログラムを実行することができます。

再度スプレッドシートのタブに戻ります。

Google スプレッドシートを開き、上部メニューの [挿入] > [図形描画] をクリックします。

好きな図形を選択し、スプレッドシート上の任意の位置に配置します。この図形がボタンとなります。

ボタン(図形)を右上の…をクリックし、[スクリプトを割り当て] をクリックします。

開いたダイアログボックスに 以下を入力し[確定]をクリックします。

sendEmails

以降は作成されたボタンをクリックすることで、簡単にプログラムを実行することができます。

注意点

使用しているアカウントによって、一日に送信できるメールの上限が決まっています。無料アカウントの場合は一日100件までです。

いきなり本番使用はせず、まずは自身のメールアドレスなどでテスト送信を行ってください。

GASおすすめ本

GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。