跳到正文
马克工具箱

邮箱域名检测(MX / SPF / DKIM / DMARC)

输入域名或邮箱地址,一次查出 MX 收信服务器、SPF、DKIM 和 DMARC 记录,并检查常见错误。企业邮箱发信进垃圾箱、被冒用发信,或者要满足 Gmail、Yahoo 对发信方的要求时,先用它看一下配置。

在服务器上处理,处理完不保存

不填时自动尝试 default、selector1、google 等常见选择器

使用步骤

  1. 输入域名,或直接粘贴邮箱地址(会自动取 @ 后面的域名)。
  2. 点「查询」,查看 MX、SPF、DKIM、DMARC 的结果;DKIM 查不到时可以填写选择器再查。
  3. 按提示到域名的 DNS 解析里修改记录,生效后再查一次。

参数说明

SPF
域名根下以 v=spf1 开头的 TXT 记录,列出允许用这个域名发信的服务器。只能有一条。
DMARC
_dmarc 子域名下以 v=DMARC1 开头的 TXT 记录,告诉收件方 SPF、DKIM 校验不通过时怎么处理。
查询次数
SPF 里的 include、a、mx、ptr、exists 和 redirect 每个都要额外查一次 DNS,总数不能超过 10。这里会逐层展开 include 和 redirect,把嵌套的查询一起算上。

怎么看这些记录

SPF 记录是一串条目。每个条目前面可以带一个限定符,说明命中时怎么处理(RFC 7208):

限定符 含义 示例
+(默认) 通过 a 或 +a
- 失败:拒绝 -all
~ 软失败:接收但做标记 ~all
? 中立:不作表态 ?all

检测器会把 +all(或单独的 all)报为允许所有服务器发信,把 ?all 报为对防伪造不起任何作用,把没有 all 或 redirect= 的记录报为未完成。对 ptr 机制和第二条 SPF 记录也会给出警告。

DMARC 记录是一组用分号隔开的 tag=value(RFC 7489):

v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; adkim=s; pct=100
标签 含义
v 版本,始终是 DMARC1,并且位于记录最前面
p 对该域名的策略:none、quarantine 或 reject
sp 对子域名的策略;没有时沿用 p
rua 聚合报告发到哪里
ruf 失败报告发到哪里
pct 策略适用于多大比例的校验失败邮件;没有时为 100
adkim、aspf DKIM 和 SPF 对齐方式:r 宽松(默认)或 s 严格
fo 失败报告选项;没有时为 0

没有 rua 的 DMARC 记录会被标出,因为这样你收不到任何报告。DKIM 方面,短于 2048 位的 RSA 密钥会被标为强度不足,p= 的值为空的密钥会显示为「已撤销」。

常见问题

SPF 用 ~all 还是 -all?

-all 表示不在列表里的服务器一律拒绝,~all 表示标记为可疑。确认列表完整之前用 ~all 更稳妥;配合 DMARC 使用时,两者效果差别不大。

DMARC 应该从哪个策略开始?

先用 p=none 并设置 rua 收报告,观察一两周确认合法的发信来源都通过校验,再改成 quarantine,最后改成 reject。

为什么查不到 DKIM?

DKIM 记录放在「选择器._domainkey.域名」下,选择器由邮件服务商决定。这里会自动尝试 default、selector1、selector2、google 等常见选择器;查不到时,在邮件原文的 DKIM-Signature 头里找到 s= 后面的值,填到「DKIM 选择器」里再查。

改了记录多久生效?

取决于记录的 TTL,一般几分钟到几小时。这里默认用阿里公共 DNS 查询,结果可能被缓存一段时间。

隐私说明

这个工具需要服务器完成:你输入的内容或文件通过 HTTPS 发送到我们的服务器,处理完立即丢弃,不做保存。服务器访问日志会记录 IP 地址和请求地址,仅用于防止滥用。

相关工具