郵箱地址規範化

批次規範化郵箱地址:統一小寫、去掉 Gmail 點號和 +標籤、合併服務商別名域名,並刪除只是寫法不同的重複地址。

把雜亂的地址列表整理成統一的規範形式。 每行貼上一個地址。工具會統一轉小寫,並根據所選選項去掉 Gmail 點號、去掉 +標籤、合併服務商別名域名,以及刪除只是寫法不同的重複項。

明細

原始地址 規範化後 狀態

郵箱規範化到底改變了什麼

問題所在

Alice.Smith+news@Gmail.comalicesmith@googlemail.comalicesmith@gmail.com 會投遞到同一個收件箱,但一句樸素的 SELECT ... WHERE email = ? 會把它們當成三個不同的人。於是你會得到重複賬號、同一封週報發三遍,以及被同一個人續了十一次的免費試用。

規範化就是把這些變體收斂成一個可以建索引、可以比較的規範字符串。

四條規則

大小寫。 按 RFC 1035,域名部分不區分大小寫;本地部分按 RFC 5321 理論上區分,但主流服務商沒有一家真的區分。實踐中統一轉小寫是安全的,也是唯一一條應當始終應用的規則。

點號。 Gmail 會忽略本地部分中的點號:a.li.ce@gmail.com 等於 alice@gmail.com。這是 Gmail 特有的行為。把它套用到 Outlook、Yahoo 或企業域名上,會把真正不同的人合併成一個,因此本工具只對 gmail.comgooglemail.com 去點。

+標籤。 子地址(alice+shopping@gmail.com)在 Gmail、Outlook、Fastmail、iCloud 以及大多數現代郵件伺服器上都受支援,Yahoo 用連字元代替加號。標籤是用於過濾的標記,不屬於身份的一部分,所以可以去掉——但請看下面的注意事項。

服務商別名。 googlemail.comgmail.com 是同一個服務;hotmail.comlive.commsn.com 都歸屬微軟消費級平臺。把它們對映到同一個規範域名,能再抓出一批重複。

什麼時候不該規範化

請儲存使用者實際輸入的地址,規範化形式只作為比較用的鍵。絕不要向規範化後的地址發信——你會去掉收件人賴以過濾郵件的 +標籤,而且確實存在本地部分含 + 的正規企業郵箱。

在反濫用場景裡使用 +標籤剝離也要謹慎。它確實能擋住“一個人薅多次試用”,但同樣會誤傷那些為每次註冊都打標籤的注重隱私的使用者。把它當作一個訊號,而不是判決。

另外,這不是校驗工具。語法完美的地址照樣可能退信;只有確認郵件才能證明可達性。

開源說明:使用原生 JavaScript 依據各服務商公開行為自行實現,不使用第三方庫,也不發起任何網路請求。

常見問題

應該用規範化後的地址替代原始地址儲存嗎?
不應該。兩者都要存:原始地址用於發信,規範化形式作為唯一索引用於查詢和查重。
為什麼只對 Gmail 去點號?
因為只有 Gmail 忽略點號。在 Outlook、Yahoo 或企業域名上,john.smith@ 和 johnsmith@ 可能是兩名不同員工,合併會把郵件發給錯的人。
所有服務商都支援 +標籤嗎?
大多數現代服務商支援,但並非全部。Yahoo 用連字元,一些較老或自建的伺服器會直接拒收帶加號的地址。不要預設帶標籤的地址一定能用。
規範化算是一種校驗嗎?
不算。它只是把字串改寫成規範形態。郵箱是否真實存在,只能靠傳送確認郵件來驗證。
我的地址會被上傳嗎?
不會。整個列表都在瀏覽器裡用純 JavaScript 處理,不會離開這個頁面。