邮箱地址语法验证器
邮箱地址的语法由 IETF 标准严格定义:RFC 5321(SMTP 传输格式)、RFC 5322(邮件消息格式)与 RFC 6531(SMTPUTF8 国际化邮件)。不合规的地址会在收发两端被拒(如 501 5.1.3 Bad recipient address syntax)。本工具逐字符校验 local-part@domain 结构,覆盖点原子、引号字符串、IP 字面量域名与国际化地址等全部合法形式,并定位违规位置。
支持批量验证:多个地址用逗号或换行分隔。示例:user@example.com、用户@例子.中国(SMTPUTF8)、"john doe"@example.com、admin@[192.0.2.1]。
功能说明
- RFC 5321 合规校验:按 SMTP 的 Mailbox 语法(§4.1.2)逐字符检查 local-part 与 domain
- 点原子与引号字符串:识别点分隔规则(连续点/首尾点非法)与 quoted-string 转义(反斜杠转义、双引号对)
- IP 字面量域名:支持 [192.0.2.1] IPv4 与 [IPv6:2001:db8::1] IPv6 地址字面量形式
- SMTPUTF8 国际化:RFC 6531 允许 UTF-8 字符,识别非 ASCII 地址并提示需 SMTPUTF8 支持
- 违规定位与修复建议:指出具体字符位置与原因,给出可操作的修复方向
使用方法
输入单个邮箱地址或多个(逗号/换行分隔)后点击「验证语法」。每个地址会得到合规/不合规判定;不合规时显示违规字符位置、规则依据(RFC 章节)与修复建议。所有校验在浏览器本地完成,地址不会上传到任何服务器。
邮箱地址语法规则速查
按 RFC 5321 §4.1.2,邮箱地址为 Local-part@Domain。Local-part 最大 64 字符,Domain 最大 255 字符,总长不超过 254 字符(RFC 5321 修订,原先 256)。
| 部分 | 合法字符 | 要点 |
| Local-part(点原子) | A-Z a-z 0-9 与 ! # $ % & ' * + - / = ? ^ _ ` { | } ~ . | 点不能连续、不能位于首尾;大小写敏感(规范层面) |
| Local-part(引号字符串) | 引号内可含空格与上述之外的字符,\ 转义 | 如 "john doe"@example.com 合法 |
| Domain | A-Z a-z 0-9 - .(标签以字母数字开头结尾,连字符不能在首尾) | 标签长度 ≤63;不允许下划线 |
| Domain(IP 字面量) | [192.0.2.1] 或 [IPv6:2001:db8::1] | 方括号包裹,IPv6 需 IPv6: 前缀 |
| SMTPUTF8 扩展 | UTF-8 非 ASCII 字符(RFC 6531) | 发件服务器与收件方均需支持 SMTPUTF8 |
常见违规与修复
- 连续点号(a..b@example.com):点原子中两个点不能相邻,RFC 5321 §4.1.2 的 dot-string 规则。删除多余点号
- 点号位于首尾(.a@example.com / a.@example.com):dot-string 要求原子之间用点分隔,不能以点开头或结尾。调整结构
- 局部含空格(john doe@example.com):空格不在 atext 字符集内,必须用引号包裹为 "john doe"@example.com
- 域名含下划线(my_domain.com):DNS 标签不允许下划线(RFC 1035),域名部分需修正
- 中文地址(用户@例子.中国):语法上 SMTPUTF8 允许,但发件方与收件方服务器都需支持 EAI(RFC 6531),否则会退信
- 长度超限:Local-part 超 64 字符或总长超 254 字符(RFC 5321 修订)会导致部分服务器拒收
技术标准依据
本工具基于以下 IETF 标准实现,校验逻辑与 ABNF 语法定义保持一致:
- 邮箱地址语法:RFC 5321 §4.1.2(SMTP Mailbox 语法)、RFC 5322 §3.4.1(addr-spec)
- 国际化邮箱:RFC 6531(SMTPUTF8 Extension)、RFC 6532(Internationalized Email Headers)
- 域名规则:RFC 1035 §2.3.1(标签长度与字符)、RFC 1123(主机名要求)
