指南垃圾邮件排查
邮件进了垃圾邮件夹时,如何读邮件头
你发的一封邮件躺在别人的垃圾邮件夹里,而它的邮件头是说明原因的唯一书面证据。这里告诉你在 Gmail、Outlook 和 Yahoo 的什么位置找到邮件头,以及怎样读懂关键的那几行。
要点速览
- 要读的是到达的那一份,不是你发出的那一份:Gmail 中用 Show original,Outlook 中用 View message details,Yahoo 中用 View raw message。
- 收件人的服务商写下的 Authentication-Results 一行,显示 SPF、DKIM 和 DMARC 是否通过,以及是为哪个域名通过的。
- 如果三项都通过,原因就不在身份验证。邮件头已经把范围缩小到信誉、投诉或内容。
- Gmail 在垃圾邮件夹中的邮件上方用横幅说明它的判定,Microsoft 写在 X-Forefront-Antispam-Report 头里,Yahoo 则完全不说明。
- 在 Microsoft,要看 CAT 和 SFV。截至 2026 年 8 月,在云端邮箱中,SCL 数值已不再决定判定结果。
要弄清一封邮件为什么进了垃圾邮件夹,就在收到它的邮箱里打开原始邮件,读靠近顶部的 Authentication-Results 一行。它记录了 SPF、DKIM 和 DMARC 是否通过,这三项检查用来证明邮件确实来自你的域名。那里有失败,就是你要找的原因;如果三项都通过,就可以排除身份验证,原因在于信誉、投诉或邮件本身。三大服务商中,只有 Microsoft 把垃圾邮件判定写进邮件头:Gmail 在邮件上方的横幅里给出一个原因,Yahoo 则什么都不显示。
打开到达的那一份,而不是你发出的那一份
邮件头是邮件一路上积累下来的那些行:谁把它交给了谁,每台服务器检查了什么。你的已发送文件夹里的那一份没有收件服务器写下的任何一行,所以你需要的是到达后的邮件。把同一封邮件发到你自己在 Gmail、Outlook.com 和 Yahoo 的测试邮箱,要用从没和你通过信的新账号。或者请收件人把原始文本复制给你。普通的转发没有用,因为它会生成一封带着新邮件头的新邮件。
原始邮件在哪里找(截至 2026 年 10 月):
- Gmail:打开邮件,点击 Reply(回复)旁边的 More(更多),再点 Show original(显示原始邮件)。新窗口会显示全文,Copy to clipboard(复制到剪贴板)可以把它复制下来(Gmail 帮助)。
- Outlook 网页版、Outlook.com 和新版 Outlook:在邮件顶部选择 More actions(更多操作),然后依次选择 View(查看)和 View message details(查看邮件详细信息)。在经典版 Outlook for Windows 中,在单独的窗口里打开邮件,选择 File(文件),再选 Properties(属性);邮件头在 Internet headers(Internet 邮件头)框里(Microsoft 支持)。
- Yahoo Mail:打开邮件,点击 More options(更多选项)图标,再点 View raw message(查看原始邮件)(Yahoo 帮助)。
有两款由服务商自己运营的分析工具,可以把原始文本变成表格:Google 的 Messageheader 和 Microsoft 的 Message Header Analyzer。
一封可以对照着读的邮件
下面是一封由 anna@northquay.example 发出、在某个 Gmail 地址收到的邮件中关键的几行。真实邮件头的其余部分都是路由细节。名称和数字是虚构的,使用了 .example 后缀和一段专为文档保留的地址范围。
Return-Path: <anna@northquay.example>
Received: from mail.northquay.example (mail.northquay.example. [203.0.113.25])
by mx.google.com with ESMTPS id …
for <…>; Mon, 05 Oct 2026 06:14:09 -0700 (PDT)
Authentication-Results: mx.google.com;
dkim=pass header.i=@northquay.example header.s=mail2026 header.b=Xk3pQ9aB;
spf=pass (google.com: domain of anna@northquay.example designates 203.0.113.25 as permitted sender) smtp.mailfrom=anna@northquay.example;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=northquay.example
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=northquay.example; s=mail2026; …
From: Anna Keller <anna@northquay.example>
Subject: Quote for the autumn order
Authentication-Results:谁检查的,哪些通过了
收件服务器就是在这一行里写下它的各项检查。其格式由 RFC 8601 定义,Google 和 Microsoft 都让发信方参考它。分三步来读。
- 看是谁写的。邮件头名称后面的第一个词,就是执行检查的服务器,这里是
mx.google.com。一封邮件可能带有好几行这样的记录,RFC 8601 提醒说发信方可以伪造其中一行。只相信收件人自己的服务商写下的那一行。它在最上面。 - 读三项结果。每一项的形式都是方法=结果,后面跟着该结果所针对的域名。
- 比较域名。
header.from后面的域名是你的读者看到的那个。它应当是你的域名,而 SPF 域名或 DKIM 域名应当属于它。
| 这一行的组成部分 | 检查了什么 |
|---|---|
spf=pass … smtp.mailfrom= | 发信服务器有权代表信封发件人发信,也就是退信所发往的地址。同一个地址也出现在 Return-Path 中。 |
dkim=pass … header.i= 或 header.d= | 邮件带有该域名的有效签名,也就是 DKIM-Signature 行里 d= 所写的那个域名。 |
dmarc=pass … header.from= | 可见的 From 地址中的域名与 SPF 域名或 DKIM 域名一致。 |
在这个例子里,三项写的都是 northquay.example,这是最干净的情况。如果 dkim= 部分显示的是你邮件发送服务的域名,或者 smtp.mailfrom= 显示的是一个你不认识的退信域名,邮件就可能 SPF 和 DKIM 都通过,DMARC 却仍然失败。
任何不是 pass 的结果都值得看一看。fail 和 softfail 表示检查做了,而邮件没有达标。none 表示没有记录或签名可供检查。temperror 是临时的 DNS 问题,所以先再测一次,再决定要不要改动;permerror 表示某条记录有错。括号里的文字是给人看的注释,不属于结果。

判定:各家服务商写下什么,又留着什么不说
身份验证告诉你邮件是谁发的。过滤器是否喜欢它,是另一个决定,而三大服务商在透露多少这方面各不相同。
Gmail 显示的是横幅,不是邮件头
Google 没有用文档说明过任何记载 Gmail 垃圾邮件判定的邮件头。它提供的是垃圾邮件夹中每封邮件上的一条提示,用 Gmail 帮助的话说,你可以在那里“在每封邮件顶部找到一条警告,说明 Gmail 为什么把它归入垃圾邮件”。对 Gmail 而言,这一句话就是收件人或测试邮箱能给你的最有用的东西。
| Gmail 帮助中的警告 | 它告诉发信方什么 |
|---|---|
| Messages from an unconfirmed sender(来自未经确认的发件人的邮件) | Gmail 无法确认邮件是谁发的。身份验证失败或缺失。 |
| You tried to unsubscribe from this sender(你曾尝试退订此发件人) | 收件人退订了,邮件却还在来。Gmail 于是把它“直接归入垃圾邮件”。 |
| Emails you sent to Spam(你归入垃圾邮件的邮件) | 这位收件人举报过你之前的某封邮件。 |
| Administrator-set policies(管理员设置的策略) | 收件人所在组织的管理员设置的规则。只有他们能更改。 |
| Spoofed email addresses, phishing scams(伪造的电子邮件地址、网络钓鱼诈骗) | 地址与某个已知发件人相似,或者邮件看起来像是在试图收集个人数据。检查你的显示名称和链接。 |
屏幕上的措辞更具体。Spam Resource 的 Al Iverson 在 2025 年 10 月汇总了这些横幅。其中两条是“This message is similar to messages that were identified as spam in the past”(此邮件与过去被认定为垃圾邮件的邮件相似)和“This message was marked as spam because previous messages from example.com were marked as spam”(此邮件被标记为垃圾邮件,因为此前来自 example.com 的邮件被标记为垃圾邮件)。两条都没有指出某一个具体的毛病。它们指向的都是信誉和内容,而这是任何邮件头都不显示的。
Microsoft 把判定写进邮件头
Microsoft 365 会给每封收到的邮件加上一行 X-Forefront-Antispam-Report。同一封邮件,如果在 Microsoft 365 邮箱中收到并被归为垃圾邮件,可能带有这样的内容:
Authentication-Results: spf=pass (sender IP is 203.0.113.25)
smtp.mailfrom=northquay.example; dkim=pass (signature was verified)
header.d=northquay.example; dmarc=pass action=none
header.from=northquay.example; compauth=pass reason=100
X-Forefront-Antispam-Report: CIP:203.0.113.25;CTRY:CH;LANG:en;SCL:5;SRV:;
IPV:NLI;SFV:SPM;H:mail.northquay.example;PTR:mail.northquay.example;
CAT:SPM;SFTY:;DIR:INB;
X-Microsoft-Antispam: BCL:0;
| 字段 | 含义,依据 Microsoft 的说明 |
|---|---|
SFV:SPM | 垃圾邮件筛选把邮件标记为垃圾邮件。SFV:NSPM 表示没有标记。 |
SFV:BLK | 没有进行筛选:你在这位收件人自己的阻止发件人列表(Blocked Senders)上。 |
SFV:SKB | 被标记为垃圾邮件,因为你的地址或域名在该组织反垃圾邮件策略的阻止列表上。 |
SFV:SKS | 在筛选之前就被标记为垃圾邮件,原因是该组织管理员编写的邮件流规则,或该组织自己的 Exchange 服务器。 |
CAT: | 起作用的保护类型:SPM 垃圾邮件,HSPM 高可信度垃圾邮件,BULK 批量邮件,PHSH 网络钓鱼,SPOOF 欺骗。 |
SRV:BULK、BCL | 被识别为批量邮件。批量投诉级别(bulk complaint level)从 0 到 9;数值越高,说明发信方招来的投诉越多。归入垃圾邮件文件夹的默认阈值是 7。 |
IPV:NLI、CIP | 发起连接的 IP 地址,以及它没有出现在任何 IP 信誉列表上的说明。 |
compauth | Microsoft 的复合身份验证结果。reason=100 表示 SPF 或 DKIM 通过,并且域名对齐。 |
在这个例子里,身份验证通过,IP 不在任何列表上,没有批量标记,结果却仍然是 SFV:SPM 和 CAT:SPM。没有人手动屏蔽这个发信方。Microsoft 的故障排查指南把这种组合归因于垃圾邮件过滤器自己对邮件的分析。
这些字段的文档是针对 Microsoft 365 的,即工作和学校邮箱。对于 Outlook.com 和 Hotmail,Microsoft 的 postmaster 网站只说过滤器会在邮件中存入一个垃圾邮件可信度,所以你在那里找到的东西只能当作线索。
Yahoo 除了身份验证什么都不显示
Yahoo 的发信方文档没有提到任何记载其判定的邮件头。找到由 yahoo.com 服务器添加的 Authentication-Results 行,按上面的方法来读。至于其余的,Yahoo Sender Hub 至少坦率地说明了它怎样做决定:“我们通常不会仅仅因为信誉差就把邮件转到垃圾邮件夹。”它列举的情况是:信誉加上投诉、经过混淆的 URL、发信 IP 的反向 DNS 中没有像样的主机名,或者邮件不符合标准。
其他邮件服务器:X-Spam-Status
如果收件人的邮件由某家主机商或公司自己的服务器处理,你可能会看到一行 X-Spam-Status。它来自开源过滤器 SpamAssassin,列出了得分、阈值(除非管理员改过,否则是 5.0)和被触发的规则名称。Google、Microsoft 和 Yahoo 都没有为自己的邮箱记载过这类内容,所以不必到那里去找。

Received 行:航海日志要从下往上读
每一台经手邮件的服务器都会在已有的行上方添加一行 Received,所以最早的记录在最下面。你只需要它们做一件事:看是哪个 IP 地址把你的邮件交给了收件人的服务商。在例子中是 203.0.113.25,出现在最上面的 Received 行里,又出现在 SPF 的注释里。Microsoft 把它重复写作 CIP。
IP 信誉和黑名单针对的就是这个地址。如果它属于你的邮件服务,你就是在与其他客户共用它,而 Google 指出,共用地址上任何一个发信方的活动都会影响所有发信方的信誉。
从发现到行动
| 你发现了 | 它意味着 | 下一步 |
|---|---|---|
spf、dkim 或 dmarc 对你的域名不是 pass | 身份验证 | 先修复 DNS 记录,再做别的。如果缺的是 DMARC 记录,见 No DMARC record found。 |
全部通过。Gmail 横幅提到退订,或提到收件人举报过的邮件;Microsoft SFV:BLK | 只是这一位收件人 | 没有什么可修的。除非对方要求,否则不要再给他们写信。 |
全部通过。Gmail“Administrator-set policies”;Microsoft SFV:SKB 或 SFV:SKS | 收件人所在的组织 | 请你的联系人让他们的管理员放行你的地址。 |
全部通过。Microsoft SRV:BULK 或较高的 BCL | 被当作招来投诉的批量邮件 | 减少收件人并更精心地挑选,同时提供方便的退订途径。 |
全部通过。Gmail“similar to messages…”;Microsoft SFV:SPM 加 CAT:SPM | 信誉或内容 | 逐项完成 SPF、DKIM 和 DMARC 都通过了,邮件还是进垃圾邮件夹中的检查。 |
| 邮件在 Gmail 的 Promotions 标签页里 | 不是垃圾邮件 | 它已经送达。Promotions 是收件箱的一个类别。 |
邮件头告诉不了你的事
没有哪家服务商会把你的信誉写进邮件头。Gmail 说,它“在给邮件分类时,会把用户举报和其他信号与身份验证信息结合起来”,而那些其他信号留在 Google 那一边。邮件头靠的是排除法:它们告诉你原因不是什么,在 Microsoft 还能告诉你是过滤器的哪一部分起了作用。
其余的要靠服务商的信息中心,它们是为有一定发送量的发信方设计的。Google 的 Postmaster Tools 可能会略去你发送量很少的日子,“以保护 Gmail 用户的隐私”;Microsoft 的 SNDS 报告的是 IP 地址的情况,只有地址属于你自己时才有帮助。
对小规模发信方来说,测试邮箱、横幅和邮件头差不多就是能拿到的全部证据。WarmupBay 再添一项读数。它的仪表盘显示你邮箱发出的预热邮件落在了哪里:收件箱、Gmail 标签页还是垃圾邮件,按 Google 和其他服务商分组;至少有 20 封送达之后,还会显示进入收件箱的比例。这能告诉你你的邮箱受到了怎样的对待。它不是对你群发邮件文案的测试,也不显示邮件头。Microsoft 365 和 Outlook.com 邮箱目前还无法连接。
常见问题
把邮件头粘贴到在线分析工具里安全吗?
邮件头包含邮箱地址、服务器名称、IP 地址和邮件 ID,原始视图通常还包括邮件正文。只复制邮件头部分,到第一个空行为止。Google 和 Microsoft 自己运营的分析工具是理所当然的选择,因为这些邮件本来就由这两家公司处理。在公开论坛发布邮件头之前,先去掉收件人的地址。
收件人不懂技术,怎么拿到邮件头?
请对方打开你的邮件,在 Gmail 中选择 Show original,在 Outlook 中选择 View message details,或在 Yahoo 中选择 View raw message,复制全部内容,用一封新邮件发给你。如果邮件在 Gmail 的垃圾邮件夹里,请对方把顶部横幅里的那句话也复制下来。那句话往往比邮件头更有价值。
为什么同一封邮件在一家服务商那里 DKIM 通过,在另一家却失败?
通常是因为邮件在前往其中一家的途中被改动或延误了。自动转发和邮件列表可能改动邮件,使签名无法再通过验证;临时的 DNS 错误则只会在某一家服务商那里显示为 temperror。比较两份邮件的 Authentication-Results 行。另外,Gmail 会把用短于 1024 位的密钥生成的签名视为未签名。
Gmail 里我名字旁边的问号是什么意思?
邮件未通过身份验证时,Gmail 会在发件人姓名旁边显示一个问号:它无法确认这封邮件确实来自看上去的发件人。在邮件头里,你会看到 spf 或 dkim 后面不是 pass。Gmail 的帮助补充说,这类邮件不一定是垃圾邮件,但对发信方来说,这是应当先修好身份验证的明确信号。
Outlook 里我地址旁边的“via”是什么意思?
当你 From 地址里的域名与 DKIM 签名中的域名或信封发件人的域名不同时,Microsoft 365 可能会加上“via”和第二个域名。意思是另一个服务替你发送了这封邮件,并署上了它自己的名字。当 DKIM 签名或信封发件人使用你的域名或其子域名时,这个标记就会消失。
从邮件头能看出我的邮件是否进了 Promotions 吗?
Google 没有用文档说明过任何显示收件箱类别的邮件头。Promotions(推广)是 Gmail 收件箱的标签页之一,按 Google 的说法,是放置优惠、促销及其他推广邮件的地方,所以那里的邮件是已经送达的。收件人可以把它拖到 Primary(主要),Gmail 说这有助于它为今后的邮件分类。自 2026 年 7 月起,Microsoft 365 也会给批量邮件打上 Promotions 标记,如果组织的管理员开启了相关功能,还可以把它移到 Promotions 文件夹。
参考来源
- Trace an email with its full header – Gmail Help
- Check if your Gmail message is authenticated – Gmail Help
- Report spam in Gmail (warnings shown on messages in Spam) – Gmail Help
- Organize your emails into categories – Gmail Help
- Email sender guidelines – Google Workspace Admin Help
- Postmaster Tools dashboards – Gmail Help
- Messageheader – Google Admin Toolbox
- View internet message headers in Outlook – Microsoft Support
- Anti-spam message headers – Microsoft Learn (updated July 2026)
- Spam confidence level (SCL) – Microsoft Learn (updated August 2026)
- Bulk email detection and the Promotions folder – Microsoft Learn (updated August 2026)
- Troubleshoot common anti-spam policy issues – Microsoft Learn
- Anti-phishing policies: unauthenticated sender indicators and the via tag – Microsoft Learn
- Message Header Analyzer – Microsoft
- Fighting Junk Email – Outlook.com Postmaster
- Services for Senders and ISPs (SNDS, JMRP) – Outlook.com Postmaster
- Find delivery delays and identify sender in New Yahoo Mail – Yahoo Help
- FAQs – Yahoo Sender Hub
- RFC 8601: Message Header Field for Indicating Message Authentication Status
- RFC 5321: Simple Mail Transfer Protocol, section 4.4 (trace information)
- Mail::SpamAssassin::Conf – Apache SpamAssassin documentation
- Gmail: Nine reasons your mail went to spam – Al Iverson, Spam Resource (13 October 2025)