Gmail差し込み下書きの宛先ミスを作成前に発見|GASで送信計画をdry-run監査
ツールおじ|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公認の商品ではありません。
