⌘K 切换工具
EMAIL AUTH

邮箱地址与 MX 记录验证工具

验证邮箱地址格式,并检查其域名能否接收邮件。

server
email-validator

🌐 The domain is resolved server-side over DNS-over-HTTPS. Only the part after @ is looked up — the local part is never sent to a resolver, and no mail is sent.

§01 关于此工具

概述

两个不同的问题常被混为一谈。「这个地址格式对吗」可以从字符串本身回答。「发到这里的 邮件会到吗」可以从 DNS 部分回答。「这个邮箱存在吗」在不发信的前提下根本无法回答, 凡是声称能回答的都在猜。

本工具回答前两个,并对第三个明确说明。它先按邮件服务器在实务中执行的规则检查格式, 再解析该域名的 MX、A/AAAA、SPF 与 DMARC 记录——这些信息足以区分打字错误、无法收信的 域名,以及认证配置已损坏的域名。

使用方法

  1. 输入或粘贴地址。
  2. 阅读上方两项结果:SyntaxDomain accepts mail
  3. 阅读备注。它们指出具体问题,而不是给出一个判决。

格式检查执行的规则

RFC 5322 允许的范围远大于邮件系统实际接受的范围。括号注释、含空格的带引号本地部分、 嵌套的折行空白,都是合法文法,却被相当大比例的真实服务器拒收。凡是合法就一律通过的 检查,会在地址注定退信时告诉您没问题。

因此这里适用的是实务规则:

  • 本地部分可包含字母、数字与 !#$%&'*+-/=?^_`{|}~.——其中包含撇号,因为 o'[email protected] 这样的姓名确实存在;包含 +,因为 Gmail 式子地址每天都在用。
  • 不允许开头的点、结尾的点与连续的点。
  • 依据 RFC 5321,本地部分上限 64 字符,域名上限 255 字符,域名的每个标签上限 63 字符。
  • 域名必须是有效主机名,且顶级域至少两个字母。user@localhost 会被拒绝,它只在单台 机器内部有意义。
  • 非 ASCII 必须用 Punycode。user@日本語.jp 会被拒绝并要求改用 xn-- 形式,因为 投递到 Unicode 形式要求每一跳都支持 SMTPUTF8。

DNS 结果的读法

MX 记录按优先级从小到大列出。有多条属于正常——它们是备用路径,相同优先级则分摊负载。

null MX(RFC 7505)是单条优先级为 0 且主机为空的记录。它表示该域名有意不接收邮件, 并抑制退回隐式 MX 的行为。对只用于网站的域名而言这是正确配置,example.com 正是如此。

隐式 MX 是相反的情形:完全没有 MX 记录,于是发送方退回到 A 或 AAAA 地址。域名在 技术上可收信,而这个结果通常是偶然造成的。邮件会送到 Web 服务器 25 端口上的任何东西, 也就是送不到任何有用的地方。

SPF 的检查针对会破坏投递的缺陷,而不是写法风格。需要 DNS 查询的机制 (includeamxptrexistsredirect)超过十个,会依据 RFC 7208 §4.6.4 造成永久错误,认证直接失败——只要再加一家服务商就很容易越界。+all 授权互联网上的 所有发送方,等于彻底废掉 SPF。ptr 已不建议使用。没有 all 机制的记录是开放的, 除非它使用了 redirect=,那种情况下不写 all 才是正确的。

同一域名上有两条 SPF 记录同样是永久错误,也会被报告,因为它表现为原因不明的间歇性 投递失败。只要把第二家服务商的记录与第一条并列添加、而不是用 include: 合并进去, 就必然发生。

DMARC_dmarc.<域名> 读取。p=none 会被标出:它只收集报告,因此失败会被记录 下来并照常投递。作为起点它是正确的,作为终点则不是。

示例

  • 注册表单拒绝真实地址 — 把您的校验与这里执行的规则相比较。从网上抄来的正则表达式 经常拒绝带 + 的标签、撇号与较长的顶级域。
  • 「他们没收到我的邮件」 — 先检查收件方的域名。null MX 或缺少 MX 能立刻给出解释, 并把话题从您自己的服务器上移开。
  • 审查自家发信域名 — SPF 查询次数、+all,以及停在 p=none 的 DMARC,是最常 解释邮件进入垃圾箱的三项发现。
  • 添加邮件服务商之后 — 服务商会给您一条 include:,却很少提到十次查询的上限。 请核对总数,而不是只看新加的那一行。
  • 调查某一封具体的邮件邮件头分析显示投递路径以及收件方 记录的 SPF、DKIM 与 DMARC 判定,.eml 查看器可打开保存下来的 邮件。本工具回答的是发信之前的问题,那两个回答的是发信之后的问题。

说明

DNS 通过 DNS-over-HTTPS 解析,每次查询有五秒超时。某次查询失败时,本应由它填充的 字段会报告为「无」而不是报错,因此一次缓慢的 TXT 解析不会让正确的 MX 结果被丢弃。

只有在域名是有效主机名时才会发起查询。未通过结构检查的地址不会产生任何 DNS 流量。

一次性域名列表收录广为人知的服务商,只作提醒而非权威依据——新域名不断出现,不在列表中 不代表任何事。角色账号检查同样仅供参考:info@admin@ 是完全有效的地址, 只是不属于某一个人。

不发送任何邮件,不建立任何 SMTP 连接,地址的本地部分绝不包含在 DNS 查询中。 见隐私政策

FAQ
能判断该邮箱是否存在吗?
不能,任何工具都无法可靠判断。SMTP 的 VRFY 命令几乎在所有地方都被禁用,用 RCPT TO 探测就是地址采集本身——那是垃圾邮件发送者的做法,会招致限流或封禁,而且设置了泛收地址的服务商对任何地址都答「有」。可以回答的是格式是否有效、域名是否能收信,本工具报告的就是这些。
我输入的地址会被发送到某处吗?
域名通过 DNS-over-HTTPS 解析。@ 之前的本地部分对解析没有任何用处,因此绝不会包含在 DNS 查询里。不发送邮件,也不保存任何内容。
我的有效地址为何被判为格式不正确?
最常见的是连续的点、本地部分开头或结尾的点,以及非 ASCII 字符。国际化域名必须以 Punycode(xn--…)给出,因为不支持 SMTPUTF8 的发送方无法投递到 Unicode 形式。像 "a b"@example.com 这样带引号的本地部分也会被拒绝:它在 RFC 5322 中合法,却被相当大比例的真实邮件系统拒收。
null MX 是什么?
RFC 7505 定义的形式:单条优先级为 0 且指向根(仅一个点)的 MX 记录。这是域名所有者明确宣告本域名不接收邮件,并阻止发送方退回到 A 记录。example.com 就公开了这样一条记录,因此报告为「不接收邮件」而非「没有 MX」。
域名没有 MX,却报告为可收信,为什么?
这是隐式 MX 规则:没有 MX 记录时,发送方会退回到 A 或 AAAA 地址。这在规范上成立,而几乎从不是有意为之,所以会被标出。如果那台主机是 Web 服务器而不是邮件服务器,邮件就被投递到了没人会读的地方。
角色账号或一次性域名算问题吗?
两者都不算无效——它们是上下文信息。info@ 与 support@ 会进入共享收件箱,由若干人阅读或无人阅读,这一点在账号找回的场景中很关键。一次性域名则暗示该地址本就是为了被丢弃而创建的。此项检查仅供参考,一次性域名列表只收录了广为人知的服务商,因此不在列表中不能证明任何事。