誤送信ガード ─ 機能の詳細仕様

この1ページに全仕様を記載しています。付録の一覧(ドメイン・姓辞書など)は拡張機能のコードから直接表示しており、実際の動作と常に一致します。

0. 基本の仕組み

機能確認の頻度
1. 初めての宛先宛先ごとに一度だけ
3. 普段と違う宛先アドレスのペアごとに一度だけ
4. 宛名と宛先の不一致宛名×宛先の組ごとに一度だけ
5. 件名スレッドの新しい宛先スレッド×宛先ごとに一度だけ
6. 組織の組み合わせ組み合わせごとに一度だけ
7. BCC の提案該当するたび(学習しない)

0-1. 送信の横取りとダイアログ

1. 初めての宛先を確認 一度だけ

出る条件: To/Cc/Bcc に、過去に一度も送信していないアドレスが含まれるとき。

出ない条件:

アドレスの比較は大文字小文字を区別しません。同じアドレスが複数の欄にある場合は1件として扱います。

2. 似たアドレスを警告(注記) 1の付随情報

「初めての宛先」の各行に、以下の注記が付くことがあります。この機能単体でダイアログが増えることはありません。

注記正確な条件
初めてのドメイン そのドメインに送信した実績がない(自社ドメインを除く)
「〇〇」の打ち間違い? 「初めてのドメイン」のとき、次のいずれかと編集距離1〜2:
① 送信履歴にあるすべてのドメイン(件数無制限・自動で増加)
付録A の主要ドメイン(全件掲載)
〇〇 と酷似 送信履歴のアドレス(最大3,000件)と、次のいずれかを満たす:
① 同一ドメインで、@より前が3文字以上、編集距離が「6文字以上なら2以内・5文字以下なら1以内」
② ドメインが違う場合、アドレス全体が8文字以上で編集距離2以内

編集距離 = 1文字の挿入・削除・置換の最小回数。gmial.comgmail.com は 2(入替)、satosaito は 1。

3. 普段と違う宛先を警告 一度だけ

送信実績のある宛先どうしの取り違え(例: 佐藤さんのつもりで斉藤さん)を検知します。

出る条件(すべて満たすとき):

  1. 今回の宛先は送信実績がある(初めてなら 1 で扱う)
  2. 履歴に「よく送る似たアドレス」が存在する: 送信3回以上、かつ今回の宛先の2倍以上の回数
  3. 類似の判定は 2 の「〇〇と酷似」と同じ規則
  4. そのペアをまだ「別人」と確認していない

出ない条件: 似た相手を同じメールに両方入れている(意図的とみなす)/回数が拮抗している(どちらが「普段」か判定できないため黙る)/自社ドメイン宛/確認済みペア。確認時は、その宛先に類似する全ペアを一括で記憶します(同じ宛先に繰り返し出ることはありません)。

4. 宛名と宛先の不一致を警告 一度だけ

4-1. 宛名の抽出

4-2. 宛先との照合(いずれか一致で警告なし)

  1. 表示名: 宛先チップの表示名と部分一致(付録C の異体字を正規化して比較。齋藤様→表示名「斉藤」は一致)
  2. アドレス: 宛名を付録B の姓辞書でローマ字化し、@より前を . _ - + 数字 で区切った各部分と「完全一致 or 前方一致」(taro.sato@sato は一致。saito@sato は不一致)。フルネーム宛名(斉藤太郎様)は先頭2〜3文字も姓として試します
  3. ドメイン: ドメインから記号を除いた文字列に3文字以上のローマ字が含まれる(田中様→tanaka-shoji.example は一致)

4-3. 警告の出しかた(「疑いの根拠」があるときだけ)

5. 件名スレッドの新しい宛先を警告 一度だけ

5-1. スレッドの同定

  1. 件名の前後の空白を除去し、小文字化
  2. 先頭の接頭辞(付録D: re / fw / fwd / 返信 / 転送 / 回答 +「:」「:」)を繰り返し除去
  3. すべての空白を除去。4文字未満になった件名は対象外(「ご連絡」のような短い定型件名の誤同定を防ぐ)
  4. ハッシュ値のみ保存します(件名の文字列自体は保存されません)

5-2. 判定

6. 初めての組織の組み合わせを警告 一度だけ

7. BCC の提案

8. 自社ドメイン宛の除外

9. 学習データとプライバシー

保存するもの内容上限
確認済みの宛先アドレス・表示名・送信回数・最終送信日時3,000件
確認済みのドメインドメイン・回数—(無制限。2 の照合対象のため削除しません)
組織の組み合わせドメインの集合1,000件
「別人」確認ペアアドレスのペア1,000件
宛名の確認宛名×アドレスの組1,000件
件名スレッド件名のハッシュとメンバー(件名の文字列は保存しない)500件
統計送信回数・ダイアログ表示回数

端末間同期(任意・既定ON)

設定「端末間で同期する」がON(既定でON)の間、学習データを圧縮して chrome.storage.sync にミラーし、同じ Google アカウント・Chrome同期ONの別PCと自動共有します。 PCを買い替えても宛先の学習が引き継がれます。

10. パフォーマンス(Chrome を重くしない設計)

項目実装
常駐プロセスなし。background(Service Worker)を持たず、Gmail のタブを閉じれば何も残りません
動作するページhttps://mail.google.com/* のみ。他のサイト・Chrome 本体には一切読み込まれません
読み込みタイミングdocument_idle(Gmail の描画完了後)。ページ表示をブロックしません
注入コード量約 113KB(非圧縮・依存ライブラリなし)。参考: 従来型拡張は jQuery+jQuery UI で約 180KB
待機中の負荷ゼロ。DOM 監視(MutationObserver)や常駐タイマーを使わず、クリックとキー入力のイベントだけで動作します
クリックごとの処理「送信ボタンか?」の判定のみ(数マイクロ秒)。送信ボタン以外では即座に抜けます
送信時の判定宛先読み取り+リスク判定で実測 1ms 未満。極端に長い入力に対しても処理量の上限ガードを設けています
メモリコード+履歴キャッシュ(上限まで使っても数百KB程度)のみ

11. 既知の制限

12. レビューのお願いの表示条件

ごくまれに、画面右下に「お役に立てていますか?」という小さなカードを表示することがあります。 「静かで、いつもは邪魔しない」という本拡張の原則はこのカードにも適用され、条件をすべて公開します。

付録A. 主要ドメイン一覧(フリーメール/typo照合先)

以下の全ドメインが ①typo 照合の対象(2)②「組織」から除外(6)③自社ドメイン除外の無効条件(8)に使われます。

付録B. 姓ローマ字辞書(全件)

宛名(漢字)とメールアドレスを照合するための辞書です。ヘボン式の表記ゆれ(sato / satou / satoh)を含みます。異体字は付録Cで正規化してから引きます。

付録C. 異体字の正規化表(全件)

宛名・表示名の比較時に、左の字を右の字として扱います。

付録D. 敬称・除外語の一覧(全件)

宛名とみなす敬称・役職

宛名として扱わない語(これを含む語は除外)

英語の除外語(Dear の後)

件名から除去する接頭辞

↑ 目次へ戻る

オープンソース(MIT License)。Google™ および Gmail™ は Google LLC の商標です。