Gmailラベルの付け間違いを変更前に発見|GASで対象メールをdry-run監査
Gasおじ|GoogleアカウントをAIエージェント化
「自動整理を始めたいけれど、必要なメールまで誤って分類しそう」。そんな不安があるときは、いきなりラベルを付けず、まず検索条件と対象件数だけを確認します。この記事ではGmailを変更しない無料範囲のGASで、候補メールをdry-run監査する方法を紹介します。
この無料コードでできること
- Gmail検索式の空欄と危険な広すぎる条件を検査する
- 候補メールの件数、スレッドID、現在のラベル名だけをログへ出す
- ラベルの追加・削除、送信、既読化を一切行わない
- 最大確認件数を超えたら停止する
先に知っておきたい制限
- コードは監査専用です。ラベルを自動付与しません。
- 初回実行時はGmailを読む権限の承認が必要です。
- 件名や本文、差出人アドレスはログへ出しません。
- Gmail検索の結果や実行上限はアカウント状態により変わります。まずテスト用メールで確認してください。
コピーして使える最小コード
function previewGmailLabelCandidatesFree() {
const CONFIG = {
query: 'newer_than:7d has:nouserlabels',
maxThreads: 20,
DRY_RUN: true
};
if (CONFIG.DRY_RUN !== true) {
throw new Error('安全のためDRY_RUNはtrue固定です。');
}
const query = String(CONFIG.query || '').trim();
if (!query) throw new Error('検索条件が空です。');
if (query === 'in:anywhere' || query === 'all') {
throw new Error('対象が広すぎる検索条件です。');
}
const maxThreads = Number(CONFIG.maxThreads);
if (!Number.isInteger(maxThreads) || maxThreads < 1 || maxThreads > 50) {
throw new Error('maxThreadsは1〜50の整数にしてください。');
}
const threads = GmailApp.search(query, 0, maxThreads + 1);
if (threads.length > maxThreads) {
throw new Error('候補が上限を超えました。検索条件を絞ってください。');
}
const result = threads.map(function(thread) {
return {
threadId: thread.getId(),
labels: thread.getLabels().map(function(label) {
return label.getName();
})
};
});
console.log(JSON.stringify({
dryRun: true,
query: query,
candidateCount: result.length,
candidates: result
}));
}実行手順
1. Google Apps Scriptで新しい検証用プロジェクトを作ります。
2. コードを貼り、`query`を少量のテストメールだけに合う条件へ変更します。
3. `previewGmailLabelCandidatesFree`を実行し、Gmail読み取り権限を確認します。
4. 実行ログの`candidateCount`とラベル名を確認します。
5. 件数が想定外なら、ラベル操作を追加せず検索条件を見直します。
失敗しやすい点
- `newer_than`や送信元などの条件を付けず、対象を広げすぎる
- 個人情報を含む件名や本文をログへ残す
- 確認前に`addLabel`や`removeLabel`を追加する
- 実行結果が0件なのに、検索条件が正しいと思い込む
公開前チェックリスト
- 元メールを変更しないdry-runになっている
- 候補件数に上限がある
- 件名、本文、差出人アドレスをログへ残さない
- 検索条件が空または広すぎる場合に停止する
- テスト用メールで結果を確認した
まとめ
Gmail整理は、ラベルを付ける処理より先に「どのメールが対象になるか」を確認すると安全です。まず読み取り専用のdry-runで件数と現在のラベルだけを監査し、検索条件を小さく調整してください。
関連する有料Tips「Morning ToDo Mail Pro(朝のToDoメールGAS)」を見る

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

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