MENU

Gmailの内容を一部個別に変更して一括送信する方法

こんにちは!今日はとある事からGmeilを一括で文章の一部だけ変えて送信する必要が出てしまったのでググり&chatGPTにエラー分析+スクリプト修正をしてもらってなんとかできた経緯を残しておく為に記事にして見ました💡

あれ?私聞かれてないんですけど・・・

と、いう事で・・・

GoogleスプレッドシートとGoogle Apps Script(GAS)を使って、Gmailで一括送信しつつ、名前などの一部内容を個別にカスタマイズする方法を解説します。

1. 仕組みの概要

スプレッドシートに名前・メールアドレスをリスト化し、Google Apps Script(GAS)を使ってGmailを一括送信します。メール本文にはテンプレートを用い、個別の名前を自動挿入できます。

2. 必要な準備

(1) Googleスプレッドシートを作成

以下のような構成でスプレッドシートを作成してください。

名前メールアドレス
山田太郎taro@example.com
田中花子hanako@example.com
  • シート名は 「リスト」 に設定
  • 1列目(A列)に名前、2列目(B列)にメールアドレスを入力

(2) Googleドキュメントでメール本文を作成

  1. Googleドキュメントを開き、テンプレートを作成します。
  2. 例えば、以下のように {customername} というプレースホルダーを使用します。
こんにちは、{customername} さん

このたびはご参加いただきありがとうございます。

詳細はこちらをご覧ください。

よろしくお願いします。
  1. GoogleドキュメントのURLをコピーします(https://docs.google.com/document/d/xxxxxxxxxxxx/edit

3. Google Apps Scriptを設定

(1) スクリプトを作成

  1. スプレッドシートを開く
  2. メニューの 「拡張機能」 → 「Apps Script」 を開く
  3. 以下のスクリプトをコピー&ペースト
function sendMail() {
  // 送信するメールの定義
  const subject = '【イベントのご案内】';
  const DOC_URL = 'https://docs.google.com/document/d/xxxxxxxxxxxx/edit'; // GoogleドキュメントのURL

  // 使用するスプレッドシートの定義
  const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const listSheet = spreadSheet.getSheetByName("リスト");

  // シートが見つからない場合のエラーチェック
  if (!listSheet) {
    Logger.log("エラー: シート 'リスト' が見つかりません。シート名を確認してください。");
    return;
  }

  // シートの列番号定義
  const NAME_COL = 1;       // 名前の列
  const MAIL_ADDRESS_COL = 2; // メールアドレスの列
  const START_ROW = 2;       // 読み込み開始行
  const listLastRow = listSheet.getLastRow();

  const openDoc = DocumentApp.openByUrl(DOC_URL);
  let wholeText = openDoc.getBody().getText();

  // メールを送信
  for (var i = START_ROW; i <= listLastRow; i++) {
    const recipient = listSheet.getRange(i, MAIL_ADDRESS_COL).getValue();
    const customerName = listSheet.getRange(i, NAME_COL).getValue();

    // 空のメールアドレスをスキップ
    if (!recipient) {
      Logger.log(`警告: ${i} 行目のメールアドレスが空です。スキップします。`);
      continue;
    }

    let body = wholeText.replace("{customername}", customerName);

    MailApp.sendEmail({
      to: recipient,
      subject: subject,
      body: body
    });

    Logger.log(`送信完了: ${i} 行目の ${recipient} にメールを送信しました。`);
  }
}

(2) スクリプトの設定と実行

  1. スクリプトを貼り付けたら 「保存」
  2. メニューの「実行」→「sendMail」を選択
  3. 初回実行時に Gmail送信の権限を許可

⚠️ 注意: スクリプト内の DOC_URL(GoogleドキュメントのURL)を ご自身のドキュメントのURLに置き換えてください!

4. うまく動作しない場合のチェックポイント

シート名「リスト」が正しいかGoogleドキュメントのURLが正しいかGmailの送信制限(無料版は1日500通まで)に達していないか

5. まとめ

この方法を使えば、大量のメールを簡単にカスタマイズして送信できます。

応用例:

  • イベント案内メール
  • 顧客への個別メッセージ
  • 定期的なお知らせの自動化

Google Apps Script を活用して、業務効率をアップしましょう! 🚀

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする