免费工具 邮件头分析:这封信走了哪条路,是不是真的那个人发的
把邮件的原文信头(「显示邮件原文」「查看信头」里那一大段)粘进来:从发件到收件箱的每一跳和每一跳花的时间、收信服务器记下的 SPF / DKIM / DMARC 结论、这些结论和发件人地址对不对得上,以及会让邮件进垃圾箱的字段问题,一次列出来。
- 逐跳路径和延迟
- SPF、DKIM、DMARC
- 本地解析
分析邮件头
示例是一封经邮件发送服务发出的双 11 发货通知(主题是 UTF-8 编码的中文)。还可以试试仿冒银行的钓鱼邮件和 RFC 8601 里的例子。
QQ 邮箱:打开邮件 → 更多 → 显示邮件原文。网易 163 / 126:更多 → 查看信头。Gmail:⋮ → 显示原始邮件。Outlook:⋯ → 查看 → 查看邮件源。连正文一起粘也没关系,遇到第一个空行就停止解析。
Received 跳数
4
总投递时间
46 秒
从 Date(没有就从第一跳)到最后一个 Received。
发现
- 说明等得最久的是第 3 跳之前:+41 秒。某一跳延迟大,通常是排队、反垃圾扫描或灰名单(暂时拒收陌生发件人)。
- 说明这些结论由 mx.example.org 记录。只有 mx.example.org 是你自己的邮箱服务商时才可信。
- 正常SPF 通过:em.shop.example.com 允许这台服务器代发。
- 正常DKIM 通过:shop.example.com 的签名有效。
- 正常shop.example.com 的 DMARC 通过(发布的策略 p=reject)。
- 正常发件人域名 shop.example.com 与 SPF + DKIM 对齐,满足 DMARC 的要求。
- 正常已支持一键退订(HTTPS 的 List-Unsubscribe 加 List-Unsubscribe-Post,RFC 8058)。
身份验证
收信服务器记下的结论。本工具不查 DNS、不重新验签。
| 检查 | 结果 | 域名 | 与发件人对齐 | 详情 |
|---|---|---|---|---|
| SPF | pass | em.shop.example.com | 是,同一组织 | mx.example.org: domain of bounce@em.shop.example.com designates 203.0.113.45 as permitted sender |
| DKIM | pass | shop.example.com | 是,完全相同 | s=s1 |
| DKIM | pass | esp.example.net | 否 | s=esp2026 |
| DMARC | pass | shop.example.com | — | p=REJECT sp=REJECT dis=NONE |
投递路径(最早的一跳在上)
时间统一换成 UTC。延迟是距上一跳的时间,第一跳按 Date 字段算。
| 跳 | 来自 | 接收方 | 协议 | TLS | 接收时间(UTC) | 延迟 |
|---|---|---|---|---|---|---|
| 1 | app.shop.example.com [192.0.2.18] | esp.example.net | ESMTPSA | TLS | 2026-11-11 00:00:02 UTC | 距 Date +1 秒 |
| 2 | — | filter.esp.example.net | SMTP | — | 2026-11-11 00:00:04 UTC | +2 秒 |
| 3 | o1.em.shop.example.com [203.0.113.45] | mx.example.org | ESMTPS | TLS | 2026-11-11 00:00:45 UTC | +41 秒 |
| 4 | mx.example.org [198.51.100.25] | mailstore.example.org | LMTP | — | 2026-11-11 00:00:47 UTC | +2 秒 |
关键字段
=?UTF-8?…?= 这类编码已解码成中文。
| 字段 | 值 |
|---|---|
From | 北风商城 <news@shop.example.com> |
Reply-To | 北风商城 <kefu@shop.example.com> |
To | xiaoming@example.org |
Subject | 您的双 11 订单已发货 |
Date | Wed, 11 Nov 2026 08:00:01 +0800 |
Message-ID | <20261111000001.8341.4f1c@shop.example.com> |
Delivered-To | xiaoming@example.org |
List-Unsubscribe | <https://em.shop.example.com/u/8341?t=Zx81>, <mailto:unsub-8341@em.shop.example.com> |
List-Unsubscribe-Post | List-Unsubscribe=One-Click |
MIME-Version | 1.0 |
Content-Type | multipart/alternative; boundary="b1_4f1c" |
DKIM-Signature | d=shop.example.com · s=s1 · a=rsa-sha256 · c=relaxed/relaxed · h=6 · 2048 bit · t=2026-11-11 00:00:02 UTC |
DKIM-Signature | d=esp.example.net · s=esp2026 · a=rsa-sha256 · c=relaxed/relaxed · h=5 · 2048 bit · t=2026-11-11 00:00:02 UTC |
版本 v1.0更新于 更新记录
邮件头能回答三个问题
慢在哪、是不是本人发的、还有什么不对劲。
慢在哪一跳?
每台经手的服务器都会在最上面加一行 Received。从下往上读就是投递路径,相邻两行的时间差就是在这一跳花的时间。每跳几秒很正常;几分钟通常是这台服务器在排队、做反垃圾扫描或灰名单。
SPF、DKIM、DMARC 过了吗?
SPF 看发件服务器是否被退信域名授权,DKIM 看某个域名的签名是否有效,DMARC 要求其中之一在和「发件人」地址对齐的域名上通过。DMARC 失败、对方策略又是 p=reject 或 p=quarantine,邮件就会进垃圾箱或直接消失。
对齐了吗?
邮件发送服务的退信域名过了 SPF、或者它自己的域名签了 DKIM,对 DMARC 都没用。必须有一个是发件人域名本身,或者和它属于同一个组织域(news.shop.example.com 和 shop.example.com 算同一个)。
还有什么不对?
Reply-To 指向别处、Message-ID 缺失或格式不对、From / Date 重复、某一跳没有 TLS。每条后面都写了违反的是哪条规则。
身份验证结果是收信服务器写下的。你自己邮箱服务商那一行以上的内容谁都能伪造,所以只信 authserv-id 是你自己服务商的那条 Authentication-Results。本工具不重新验签,也不查 DNS。
三步
任何邮箱客户端的信头都能用。
-
1
复制原文信头
打开收到的那封邮件(不是「已发送」里的副本),用「显示邮件原文」「查看信头」「查看邮件源」复制。
-
2
粘贴到这里
路径、身份验证和发现立即出来,什么都不会发出去。
-
3
处理失败项
自己发的邮件:去 DNS 或邮件发送服务后台修 SPF、DKIM 或对齐。可疑邮件:DMARC 失败加上 Reply-To 指向别处,基本可以直接删掉。
分析器读了哪些东西
每个字段按定义它的标准解析。
- 字段和折行:RFC 5322 §2.2;日期 §3.3(含 EST、PST 等旧时区名);只能出现一次的字段 §3.6;Message-ID 格式 §3.6.4
- Received:RFC 5321 §4.4 的 from / by / with / id / for;
with ESMTPS或ESMTPSA表示用了 TLS(RFC 3848) - Authentication-Results:RFC 8601,支持任意位置的注释和带引号的
reason=;ARC 副本按 RFC 8617 - SPF 结果 RFC 7208,DKIM 标签 RFC 6376 §3.5,DMARC 对齐 RFC 7489 §3.1
- 组织域用内置的常见二级后缀(com.cn、co.uk 等)近似,没有用完整的 Public Suffix List
| 要求 | 所有发件人 | 每天给 Gmail 发 5,000 封以上 |
|---|---|---|
| SPF 和 DKIM | SPF 或 DKIM 之一 | 两个都要 |
| DMARC | — | 必须,p=none 也可以 |
| 发件人与 SPF 或 DKIM 对齐 | — | 必须 |
| 传输用 TLS | 必须 | 必须 |
| 符合 RFC 5322、有效的 Message-ID | 必须 | 必须 |
| 一键退订(RFC 8058) | — | 营销和订阅类邮件 |
读懂示例里的发货通知
默认示例的信头里能看出这些。
| 跳 | 来自 → 接收方 | 延迟 | 含义 |
|---|---|---|---|
| 1 | app.shop.example.com → esp.example.net(ESMTPSA) | 距 Date +1 秒 | 商城系统把邮件交给邮件发送服务,带登录认证、走 TLS |
| 2 | (内部)→ filter.esp.example.net | +2 秒 | 发送服务自己的过滤环节 |
| 3 | o1.em.shop.example.com → mx.example.org(ESMTPS) | +41 秒 | 等得最久:在发送服务排队后才投递 |
| 4 | mx.example.org → mailstore.example.org(LMTP) | +2 秒 | 投进收件箱;机器内部投递,不评 TLS |
注意前两跳写的是 +0000、后两跳写的是 +0800,换成 UTC 后再相减,结果才对。身份验证:SPF 在 em.shop.example.com 上通过,DKIM 在 shop.example.com 和 esp.example.net 上都通过;DMARC 通过,因为 shop.example.com 和发件人完全相同(DKIM),em.shop.example.com 和它同属一个组织域(SPF)。一键退订也设好了。
看邮件头时容易读错的地方
手工看信头时的四个坑。
从上往下读
最新的 Received 在最上面,发件方在最下面,从下往上读。
每条结果都当真
发件方可以在发信前自己写一行 Authentication-Results。只有你自己邮箱服务商加的那条算数。
通过了但没对齐
发送服务的域名过了 SPF,对 DMARC 不够。用自己的域名配 DKIM,或者设置自定义退信域名。
时区没换算就相减
国内服务器常写 +0800,国外的写 +0000 或 -0800。直接拿时刻相减会差出几个小时;时钟本身也会差几秒,出现负数是时钟偏差。
不完全依赖邮件送达的在线客服
下班时间访客留言时,TapCub 聊天窗会收集邮箱,由你用邮件回复;工作时间内,对话直接在聊天窗里进行。
怎么查看邮件头(邮件原文)?
QQ 邮箱:打开邮件 → 更多 → 显示邮件原文。网易 163 / 126 邮箱:更多 → 查看信头。Gmail:⋮ → 显示原始邮件。Outlook 网页版:⋯ → 查看 → 查看邮件源;Outlook 桌面版:文件 → 属性 → Internet 标头。复制第一个空行之前的全部内容。
邮件头里的 Received 怎么看?
从下往上看。最下面的 Received 是最先收到邮件的服务器,往上依次是下一跳,最上面是你自己的邮箱服务商。每一行写了从哪台服务器来、哪台服务器收、用什么协议、什么时间。
邮件头里的 SPF、DKIM、DMARC 是什么意思?
SPF:发件服务器是否被退信域名授权。DKIM:某个域名给邮件签了名,且邮件没被改过。DMARC:SPF 或 DKIM 在和「发件人」地址对齐的域名上通过,外加发件方声明的处理策略(none、quarantine、reject)。
SPF 通过了,为什么邮件还进垃圾箱?
常见原因:SPF 是在邮件发送服务的域名上通过的,没和你的发件人域名对齐,DMARC 失败;没有 DKIM 或用的是发送服务的域名签名;群发邮件没有一键退订;或者内容和发信信誉问题。前三个都能在信头里看出来。
邮件为什么延迟了?
在投递路径表里找延迟最大的那一跳。发件方那边慢,一般是排队或限速;收件方那边慢,一般是反垃圾扫描或灰名单(暂时拒收陌生发件人、等对方重试)。出现负数或奇怪的数字,是服务器之间时钟不一致。
把邮件头贴到这里安全吗?
邮件头里有姓名、邮箱、IP 地址,有时还有追踪编号。这个页面在浏览器里解析,不上传,也不放进分享链接。截图给别人看之前,仍然建议先把不想公开的部分打码。
能验证 DKIM 签名吗?
不能。验签需要完整的正文和 DNS 里的公钥。这里报告的是你的邮箱服务商在 Authentication-Results 里记下的结论,并读出签名的标签(域名、选择器、算法、密钥位数、过期时间)。