電子郵件地址驗證

即時檢查電子郵件地址是否符合實用的 RFC 5322 格式規範,並驗證該域名是否真的能夠接收郵件(MX 記錄查詢)。適用於表單校驗和清理郵件列表的免費工具。

電子郵件格式判定示例

示例地址 判定 原因
[email protected] 有效 基本格式(本地部分 @ 域名部分)
[email protected] 有效 包含句點與加號的帶標籤地址
[email protected] 無效 本地部分中出現連續的句點
@example.com 無效 “@”前的本地部分為空
user@example 無效 域名缺少頂級域(如 .com)
user example.com 無效 不包含“@”符號

查驗電子郵件地址的格式與網域

本工具即刻判定所輸入的地址在格式上是否說得通,並能查明其網域是否當真接得住郵件——亦即有無 MX 記錄。設計表單驗證時,或整理已然年久的郵件名單時,它都派得上用場。

頭一件要明白的是:格式無可挑剔與地址當真存在,全然是兩回事。 一個地址縱然寫法完美,其背後的帳號若已註銷,照樣退信。反過來,RFC 5322 寬容得令人吃驚:"quoted string"@example.com 這樣的寫法在文法上竟是合法的。 故而想用正規表示式去做完全的驗證,便等於保證您總有一天會把一個本來有效的地址拒之門外。 實務中行得通的做法,是只鬆鬆地查一查格式,再發一封確認信請對方打開。 查 MX 記錄能確認該網域是否備下了收信之處,至於某一個具體地址是否存在,它一字未言。

使用方法

  1. 輸入地址 格式的判定當場作出。
  2. 閱讀格式的判定 它依 RFC 5322 的一個務實近似來判定。
  3. 查一查 MX 記錄 由此可知該網域是否公開了收信之處。
  4. 最終以發信來定奪 除了發一封確認信,別無他法可證一個地址確實存在。

用好本工具的小技巧

  • 即使像“[email protected]”這樣格式正確的地址,也不能保證一定能收到郵件——下方的 MX 記錄檢查可以大致判斷這一點。
  • 整理郵件列表時,先用格式檢查排除明顯的輸入錯誤,再用 MX 記錄檢查確認域名本身是否有效,效率會更高。
  • Gmail、Outlook 等主流域名通常都配有 MX 記錄,但企業自有域名剛建立或配置有誤時可能缺少 MX 記錄。
  • 複製貼上地址時末尾殘留的多餘空格會導致格式檢查判定為無效,請留意輸入框前後的空白字元。
  • 如果想在自己的登錄檔單中加入即時校驗,下方“閒話”部分介紹的實用正規表示式可以直接複用。

這些情境會用到

設計表單的驗證

可一面拿真實例子去試,一面定下該拒到多嚴。

整理郵件名單

網域已然不存的地址,憑有無 MX 記錄便分得出來。

揪出打字之誤

gmail.con 之類的網域差錯,一查 MX 便顯露無遺。

查究投遞失敗的緣由

對一個收不到信的地址,可先判明是格式有誤還是網域有誤。

電子郵件地址的術語

本地部
@ 之前的那一段。依 RFC 5322,以引號括起便可容納原本不許的字元。
網域部
@ 之後的那一段。寫在此處的網域,其 MX 記錄決定了信件的去處。
MX 記錄
指明由哪台伺服器接收某網域郵件的 DNS 記錄。 少了它,信便到不了。
RFC 5322
規定郵件格式的標準。其條文遠比多數人所想的寬容。
國際化地址
含有非拉丁字元的地址。有些系統至今仍不接納,實務中須當心。
確認信
往所填地址發一封信、請收件人打開的步驟。這是最可靠的驗證之法。

常見問題

本工具不支援 RFC 5322 中允許的一些特殊寫法,例如加引號的本地部分,或使用 IP 字面量作為域名(如 user@[192.0.2.1])。它採用的是覆蓋絕大多數實際使用場景的實用近似規則,而非追求完全符合規範。

不能。MX 記錄只能說明該域名具備接收郵件的機制,並不能說明“@”前面的郵箱賬戶是否真的存在。要確認郵箱是否存在,唯一可靠的方法是實際傳送一封郵件,看是否會被退回(退信)。

極少數情況下,域名會以 A 記錄(域名自身的 IP 地址)作為“後備”方式接收郵件,而不設定 MX 記錄。不過這是不推薦的配置,如今絕大多數郵件伺服器都正確設定了 MX 記錄。

格式檢查與 MX 記錄查詢適合作為傳送前的初步篩選,但在大批次傳送前,還應確認發信域名的 SPF/DKIM/DMARC 配置,以及郵件列表是否為使用者主動訂閱(opt-in)。向大量無效地址傳送郵件可能損害發信域名的信譽。
工具君

閒話 ― 為什麼郵件驗證要分兩個階段

把郵件地址驗證拆分為“格式”和“是否存在”兩個不同層面來理解會更清晰。格式檢查只是對字串結構(本地部分、@、域名部分)的靜態判斷,完全不涉及網路通訊。而確認域名是否存在則需要向 DNS 發起查詢,瀏覽器的 JavaScript 無法直接完成這一步,必須由伺服器端處理。本工具把兩者拆分成獨立步驟,正是因為它們在技術上屬於完全不同性質的檢查。

RFC 5322 定義了郵件地址的正式語法,其複雜程度出乎意料。例如,只要把本地部分用雙引號括起來,規範上甚至允許出現空格或連續句點,而這些寫法在實際郵件伺服器中幾乎從未被使用過。因此大多數從業者並不會實現完全合規的解析器,而是採用 WHATWG(HTML Living Standard)定義的簡化正規表示式,本工具也遵循了這種實用主義思路。

MX 記錄是登記在 DNS 中的一條記錄,用於說明“應由哪臺伺服器接收發往該域名的郵件”,優先順序數值越低越先被使用。企業在遷移郵件系統時,常常會讓多條 MX 記錄暫時共存,以便分階段完成切換。如果一條 MX 記錄都找不到,那麼發往該域名的郵件很可能會被接收方拒收。