← RFC Reference

垃圾邮件过滤器如何工作

Email Concepts Encyclopedia Published March 2026
ELI5: 想象一个俱乐部的保镖。在你甚至还没到门口,他们就检查你是否在黑名单上(黑名单)。在门口,他们检查你的身份证(身份验证)。在里面,他们看你穿什么和你说什么(内容过滤)。如果常客一直在投诉你,不管其他一切如何,你都会被赶出去(参与度信号)。垃圾邮件过滤器分层工作,每一层都会捕捉前一层遗漏的东西。

每封电子邮件都要通过的过滤管道——从连接时检查到机器学习分类器——以及主要提供商如何决定什么内容到达收件箱。

过滤管道

垃圾邮件过滤不是单一检查。它是一个多阶段的管道,在SMTP事务的每个阶段和传送后对邮件进行评估。每个阶段都可以拒绝、延迟或标记邮件。阶段大致按以下顺序进行:

  1. 连接时检查 — IP信誉、黑名单、速率限制
  2. 信封检查 — 发件人验证、收件人验证
  3. 身份验证检查 — SPF、DKIM、DMARC评估
  4. 邮件头分析 — 结构验证、一致性检查
  5. 内容分析 — 正文扫描、URL检查、附件检查
  6. 信誉评分 — 发件人信誉与所有信号加权对比
  7. 机器学习分类 — 贝叶斯和神经网络模型
  8. 传送后信号 — 参与度、用户操作、投诉反馈

Gmail和Outlook等提供商的现代垃圾邮件过滤器并行运行其中大多数,生成复合得分以确定收件箱放置。但将它们理解为管道有助于解释每一层如何贡献。

阶段1:连接时检查

在发送任何电子邮件内容之前,接收服务器会评估连接的IP地址。

# 来自黑名单IP的连接
550 5.7.1 Service unavailable; client [198.51.100.42] blocked
using zen.spamhaus.org

连接时检查是最具成本效益的过滤器。在连接时拒绝可以避免服务器处理整个邮件。

阶段2:信封检查

在SMTP信封阶段(MAIL FROM和RCPT TO)中,会运行额外检查:

阶段3:身份验证检查

邮件内容到达后,服务器评估电子邮件身份验证:

身份验证结果记录在Authentication-Results邮件头中:

Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=mtg;
spf=pass (google.com: 198.51.100.42 is permitted) smtp.mailfrom=example.com;
dmarc=pass (p=REJECT) header.from=example.com

身份验证是前提条件,不是保证。通过SPF、DKIM和DMARC并不意味着您的邮件到达收件箱。垃圾邮件发送者也可以设置有效的身份验证。但未能通过身份验证是一个很强的负面信号,几乎肯定会将您的邮件路由到垃圾邮件或拒绝。

阶段4:邮件头分析

垃圾邮件过滤器检查邮件头是否有异常:

阶段5:内容分析

内容分析检查邮件正文、HTML结构和附件。

文本和HTML分析

URL和链接分析

附件分析

阶段6:信誉评分

上述所有信号都输入到信誉模型中。这是IP和域信誉影响最大的地方。

信誉充当倍增器。具有优秀信誉的发件人获得怀疑的好处——边界线内容被传送到收件箱。信誉差的发件人得不到怀疑的好处——即使是干净内容也可能被过滤。这就是为什么信誉通常比内容更重要。

提供商对信号的权衡不同:

阶段7:机器学习分类

现代垃圾邮件过滤器使用在数十亿条邮件上训练的机器学习模型。

贝叶斯过滤

基础技术。贝叶斯过滤器根据其单词(词元)在已知垃圾邮件与已知合法邮件语料库中的频率计算邮件是垃圾邮件的概率。如果单词"invoice"在80%的合法邮件和5%的垃圾邮件中出现,这是强的合法信号。如果"unsubscribe"与"恭喜!您赢了!"出现在一起,组合概率会向垃圾邮件转变。

贝叶斯过滤器是自适应的——它们从新邮件中学习。当用户将邮件标记为垃圾邮件时,过滤器会更新其概率表。这种单用户学习是为什么同一邮件对一个用户可能被过滤为垃圾邮件,而对另一个用户被传送到收件箱的原因。

神经网络模型

主要提供商现在使用远远超越单个词频率的深度学习模型。这些模型评估:

例如,Google的垃圾邮件过滤器在到达任何收件箱之前处理超过99.9%的垃圾邮件,同时保持误报率低于0.05%。这只有通过大规模机器学习才可能实现。

阶段8:传送后信号

过滤不会在邮件到达收件箱时停止。传送后信号持续细化放置:

基于参与度的过滤创建反馈循环:如果您向新订阅者发送的早期邮件未被打开,未来邮件更有可能被过滤。这就是为什么IP预热建议总是说从最受欢迎的收件人开始。

主要提供商如何不同

Gmail

Gmail的过滤是最复杂的,最受参与度驱动的。关键特征:

Outlook.com / Microsoft 365

Yahoo / AOL

垃圾邮件过滤器测试和调试

当您的邮件进入垃圾邮件时,您需要系统的方法来诊断原因。

阅读过滤器邮件头

大多数垃圾邮件过滤器向邮件添加邮件头,揭示其判决。向自己发送测试邮件并检查原始邮件头:

# Gmail添加这些邮件头(在"显示原始邮件"中可见):
X-Gm-Message-State: [internal state data]
X-Google-DKIM-Signature: [Google's own signature]
Authentication-Results: mx.google.com;
spf=pass ... dkim=pass ... dmarc=pass

# Microsoft添加:
X-Microsoft-Antispam: BCL:0;
X-MS-Exchange-Organization-SCL: 1
# SCL(垃圾邮件置信度):-1=安全、0-4=已传送、5-6=垃圾邮件、7-9=已阻止

# SpamAssassin(开源,广泛使用)添加:
X-Spam-Status: No, score=-1.2 required=5.0
tests=DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_PASS,
RCVD_IN_DNSWL_LOW autolearn=ham

这些邮件头告诉您应用了哪些测试及其结果。Authentication-Results邮件头是标准化的;垃圾邮件评分邮件头是过滤器特定的。

种子测试

将测试邮件发送到多个提供商的帐户(Gmail、Outlook、Yahoo、公司服务器),检查它们是否进入收件箱或垃圾邮件。在每个重大活动或基础设施更改之前执行此操作。几个第三方服务通过跨数十个提供商的测试地址面板自动化此操作。

隔离变量

如果邮件进入垃圾邮件,一次更改一个变量以识别触发因素:

可能出现的问题

合法电子邮件被过滤为垃圾邮件

您的事务性电子邮件(密码重置、订单确认)进入垃圾邮件是因为同一域上的营销电子邮件破坏了您的域信誉。解决方案:考虑将事务性和营销电子邮件分离到不同的子域中,以便营销信誉损害不会影响关键的事务性传送。

内容在合法内容上触发

您的发票电子邮件包含单词"payment"加上附件加上链接——都是合法的,但组合得分很高。解决方案:确保强身份验证和信誉,以便从受信任发件人的背景下评估内容信号。

参与度死亡螺旋

您向大量不活跃订阅者列表发送。很少有人打开您的电子邮件。低参与度率导致提供商将后续邮件移动到垃圾邮件。甚至更少的人看到它们。打开率进一步下降。更多邮件进入垃圾邮件。解决方案:定期清除不活跃订阅者,并在他们变得不活跃之前使用重新参与活动。

URL黑名单

您邮件中链接的域被黑名单(也许是您的跟踪域,或共享链接缩短器)。包含该链接的每封电子邮件现在都被标记。解决方案:为跟踪链接使用自己的域,监控链接信誉,避免在电子邮件中使用共享URL缩短器。

关键要点

进阶阅读

Related RFCs