电子邮件地址验证
即时检查电子邮件地址是否符合实用的 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 记录能确认该域名是否备下了收信之处,至于某一个具体地址是否存在,它一字未言。
使用方法
- 输入地址 格式的判定当场作出。
- 阅读格式的判定 **它依 RFC 5322 的一个务实近似来判定。**
- 查一查 MX 记录 **由此可知该域名是否公开了收信之处。**
- 最终以发信来定夺 **除了发一封确认信,别无他法可证一个地址确实存在。**
用好本工具的小技巧
- 即使像“[email protected]”这样格式正确的地址,也不能保证一定能收到邮件——下方的 MX 记录检查可以大致判断这一点。
- 整理邮件列表时,先用格式检查排除明显的输入错误,再用 MX 记录检查确认域名本身是否有效,效率会更高。
- Gmail、Outlook 等主流域名通常都配有 MX 记录,但企业自有域名刚建立或配置有误时可能缺少 MX 记录。
- 复制粘贴地址时末尾残留的多余空格会导致格式检查判定为无效,请留意输入框前后的空白字符。
- 如果想在自己的注册表单中加入实时校验,下方“闲话”部分介绍的实用正则表达式可以直接复用。
这些场景会用到
设计表单的校验
可一面拿真实例子去试,一面定下该拒到多严。
整理邮件名单
**域名已然不存的地址,凭有无 MX 记录便分得出来。**
揪出打字之误
`gmail.con` 之类的域名差错,一查 MX 便显露无遗。
查究投递失败的缘由
对一个收不到信的地址,可先判明是格式有误还是域名有误。
电子邮件地址的术语
- 本地部
- `@` 之前的那一段。**依 RFC 5322,以引号括起便可容纳原本不许的字符。**
- 域名部
- `@` 之后的那一段。写在此处的域名,其 MX 记录决定了信件的去处。
- MX 记录
- **指明由哪台服务器接收某域名邮件的 DNS 记录。** 少了它,信便到不了。
- RFC 5322
- 规定邮件格式的标准。**其条文远比多数人所想的宽容。**
- 国际化地址
- 含有非拉丁字符的地址。有些系统至今仍不接纳,实务中须当心。
- 确认信
- 往所填地址发一封信、请收件人打开的步骤。**这是最可靠的校验之法。**
常见问题
闲话 ― 为什么邮件验证要分两个阶段
把邮件地址验证拆分为“格式”和“是否存在”两个不同层面来理解会更清晰。格式检查只是对字符串结构(本地部分、@、域名部分)的静态判断,完全不涉及网络通信。而确认域名是否存在则需要向 DNS 发起查询,浏览器的 JavaScript 无法直接完成这一步,必须由服务器端处理。本工具把两者拆分成独立步骤,正是因为它们在技术上属于完全不同性质的检查。
RFC 5322 定义了邮件地址的正式语法,其复杂程度出乎意料。例如,只要把本地部分用双引号括起来,规范上甚至允许出现空格或连续句点,而这些写法在实际邮件服务器中几乎从未被使用过。因此大多数从业者并不会实现完全合规的解析器,而是采用 WHATWG(HTML Living Standard)定义的简化正则表达式,本工具也遵循了这种实用主义思路。
MX 记录是登记在 DNS 中的一条记录,用于说明“应由哪台服务器接收发往该域名的邮件”,优先级数值越低越先被使用。企业在迁移邮件系统时,常常会让多条 MX 记录暂时共存,以便分阶段完成切换。如果一条 MX 记录都找不到,那么发往该域名的邮件很可能会被接收方拒收。