Gmail差し込み下書きの宛先ミスを作成前に発見|GASで送信計画をdry-run監査

Gmail差し込み下書きの宛先ミスを作成前に発見|GASで送信計画をdry-run監査

ツールおじ|GoogleアカウントをAIエージェント化

ツールおじ|GoogleアカウントをAIエージェント化

同じ案内文を複数人へ用意するとき、宛先の空欄や重複、件名の差し込み漏れは送信直前ほど見つけにくくなります。この記事では、メールを送らず、下書きも作らずに、作成予定だけを確認する無料GAS例を紹介します。

先に知っておきたいこと

  • 初期値は `DRY_RUN = true` です。メール送信もGmail下書き作成も行いません。
  • スプレッドシートの宛先、名前、件名テンプレートを検査します。
  • 本文やメールアドレスそのものはログへ出さず、行番号と問題種別だけを残します。
  • この無料例は作成前監査までです。自動送信機能は含みません。

準備するシート

  • シート名: `下書き計画`
  • A列: 宛先メールアドレス
  • B列: 宛名
  • C列: 件名テンプレート(例 `{{name}}様へのご案内`)
  • 1行目は見出し、2行目以降へテスト用データを置きます。

コピーして使える最小コード

const DRY_RUN = true;
const SHEET_NAME = '下書き計画';
const MAX_ROWS = 100;

function auditGmailMailMergePlanFree() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  if (!sheet) throw new Error('シート「' + SHEET_NAME + '」が見つかりません');

  const lastRow = sheet.getLastRow();
  if (lastRow < 2) throw new Error('確認する計画行がありません');
  const rowCount = lastRow - 1;
  if (rowCount > MAX_ROWS) throw new Error('100行を超えています。範囲を分けてください');

  const values = sheet.getRange(2, 1, rowCount, 3).getDisplayValues();
  const seen = new Set();
  const plans = [];
  const issues = [];

  values.forEach((row, index) => {
    const rowNumber = index + 2;
    const email = String(row[0] || '').trim().toLowerCase();
    const name = String(row[1] || '').trim();
    const subjectTemplate = String(row[2] || '').trim();

    if (!email || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
      return issues.push({ row: rowNumber, type: '宛先形式エラー' });
    }
    if (seen.has(email)) return issues.push({ row: rowNumber, type: '宛先重複' });
    seen.add(email);
    if (!name) return issues.push({ row: rowNumber, type: '宛名未入力' });
    if (!subjectTemplate) return issues.push({ row: rowNumber, type: '件名未入力' });

    const subject = subjectTemplate.replace(/{{name}}/g, name).trim();
    if (/{{[^}]+}}/.test(subject)) return issues.push({ row: rowNumber, type: '未置換タグあり' });
    plans.push({ row: rowNumber, subjectLength: subject.length });
  });

  console.log(JSON.stringify({ dryRun: DRY_RUN, planCount: plans.length, plans, issues }));
  if (issues.length) throw new Error('入力エラーがあります。ログを確認してください');
  if (DRY_RUN !== true) throw new Error('この無料例は監査専用です');
}

実行手順

1. 検証用スプレッドシートへ「下書き計画」シートを作ります。

2. 自分で管理するテスト用アドレスを2〜3件入力します。

3. Apps Scriptへコードを貼り付けます。

4. `DRY_RUN = true` のまま `auditGmailMailMergePlanFree` を実行します。

5. ログの行番号、予定件数、問題種別を元シートと照合します。

6. エラーを修正して再実行し、問題が0件になることを確認します。

失敗しやすい点と停止条件

  • シートなし、計画行なし、100行超では停止します。
  • 宛先の形式不正、重複、宛名・件名の空欄、未置換タグがあれば停止します。
  • ログには宛先、宛名、件名本文を出しません。
  • メールアドレスの形式が正しくても、実在や受信可否までは判定できません。
  • Gmailの送信上限、組織ポリシー、権限設定は別途確認が必要です。

公開前チェックリスト

  • テスト用データだけで実行した
  • 宛先の空欄・形式・重複を確認した
  • 差し込みタグがすべて置換された
  • ログへ個人情報や本文が出ていない
  • 自動送信処理が含まれていない

まとめ

差し込みメールは、作成処理を始める前に宛先とテンプレートを検査すると事故を減らせます。まずは送信も下書き作成もしないdry-runで、件数と問題行だけを確認してください。

Gmail下書きテンプレGAS Proを見る

GasおじのTips商品一覧を見る

※学習・検証用の例です。実データへ適用する前にコピー環境とテスト用データで確認してください。Google公式・Google公認の商品ではありません。


あなたも記事の投稿・販売を
始めてみませんか?

Tipsなら簡単に記事を販売できます!
登録無料で始められます!

Tipsなら、無料ですぐに記事の販売をはじめることができます Tipsの詳細はこちら
 

この記事の販売者

ツールおじ|GoogleアカウントをAIエージェント化

おう、Gasおじだ。 AIツールとSaaSに散々突っ込んで遠回りした結果、最後に強かったのは「今あるGoogleアカウント」だった。 今ではAIエージェントであらゆるタスクを自動化して無双してるぞ。 GAS、スプレッドシート、フォーム、Gmail、AIエージェントを組み合わせれば、個人でも小さな会社でも、手作業だらけの業務はかなり自動化できる。 ここでは机上のAI論じゃなく、現場で動くテンプレ、コード、手順だけを置いていくぞ。 高いツールを増やす前に、まずお前さんのGoogleアカウントを仕事するエージェントに変えようじゃないか。

この販売者が書いた他の記事

  • Gmailの予約送信ミスを送信前に発見|GASで宛先・日時をdry-run監査

  • Gmailの定型連絡を「送信せず」まとめて下書き化する|Gmail下書きテンプレGAS Pro

    ¥2,980
    2 %獲得
    (59 円相当)
  • スプレッドシートの入力ミスを公開前に発見|GASでルール表をdry-run監査

関連のおすすめ記事

  • Gmailの定型連絡を「送信せず」まとめて下書き化する|Gmail下書きテンプレGAS Pro

    ¥2,980
    2 %獲得
    (59 円相当)
    ツールおじ|GoogleアカウントをAIエージェント化

    ツールおじ|GoogleアカウントをAIエージェント化

  • USBメモリで持ち運べるLinux Mint 22.1と永続的な書き込み領域の作成法【Rufus だけで作成する方法を初心者向けに徹底解説】

    ¥500
    2 %獲得
    (10 円相当)
    SmartSenior

    SmartSenior

  • 個人クリエイター公開準備チェックGAS Pro

    ¥2,980
    2 %獲得
    (59 円相当)
    ツールおじ|GoogleアカウントをAIエージェント化

    ツールおじ|GoogleアカウントをAIエージェント化