电子邮件地址验证

即时检查电子邮件地址是否符合实用的 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 记录都找不到,那么发往该域名的邮件很可能会被接收方拒收。