2024年初,一家电商公司发现他们的促销邮件突然全部进入了Gmail的垃圾箱。技术团队检查了所有配置:SPF记录正确、DKIM签名有效、DMARC策略已设置、IP不在任何黑名单上。他们甚至联系了Gmail的支持团队,得到的回复是"一切正常"。问题持续了三周,直到有人发现公司最近雇佣的营销机构在同时使用另一个IP地址发送大量相似内容的邮件——这触发了Gmail的关联声誉惩罚机制。

这不是个例。根据Validity发布的《2025年邮件投递基准报告》,全球邮件投递率仅84%,这意味着每六封邮件中就有一封无法到达收件箱。Microsoft Outlook的投递率更低,仅为75.6%,超过14%的邮件被标记为垃圾邮件。对于依赖邮件进行业务沟通的企业和个人而言,这不再是技术细节问题,而是直接关系到营收和信誉的核心挑战。

一个本该简单的协议

电子邮件的设计初衷是简单的。1982年,Jon Postel发布的RFC 821定义了简单邮件传输协议(SMTP)。协议的核心假设是信任:任何邮件服务器都可以向任何其他服务器发送邮件,发送者可以声称自己是任何人。

在互联网的早期,这是一个合理的假设。当时网络规模小,用户彼此认识,滥用行为罕见。但随着互联网商业化,这个设计暴露出致命缺陷:任何人都可以伪造发件人地址发送邮件。垃圾邮件发送者、钓鱼攻击者、网络诈骗犯迅速利用了这个漏洞。

1990年代后期,垃圾邮件开始泛滥。2003年,垃圾邮件占全球邮件流量的比例已超过50%。各大邮件服务商开始部署各种过滤机制,一场持续二十年的技术博弈就此展开。

邮件投递流程

图片来源: assets.bytebytego.com

邮件从发送方到接收方的旅程涉及多个环节:MUA(邮件用户代理)提交邮件,MSA(邮件提交代理)进行初步处理,MTA(邮件传输代理)在服务器之间转发,MDA(邮件投递代理)将邮件存入收件箱。每一个环节都可能成为邮件被拦截的关口。

SPF:第一道防线的设计与局限

2003年,Meng Weng Wong提出了发件人策略框架(Sender Policy Framework,SPF)。核心思想很简单:域名所有者在DNS中发布一条记录,声明哪些IP地址有权使用该域名发送邮件。

当邮件服务器收到一封邮件时,它会:

  1. 从SMTP信封中提取MAIL FROM地址的域名
  2. 查询该域名的SPF记录
  3. 检查发送服务器的IP是否在授权列表中
  4. 根据结果决定是否接受邮件

一个典型的SPF记录如下:

v=spf1 ip4:192.0.2.0/24 include:_spf.google.com -all

这条记录的含义是:授权192.0.2.0/24网段的IP地址、Google的SPF授权服务器,其他所有IP都不被授权(-all)。

SPF的结果有七种:

结果 含义
Pass IP被明确授权
Fail IP明确不被授权
Softfail IP可能不被授权,但不确定
Neutral 域名未声明是否授权
None 未找到SPF记录
Temperror 临时性错误(如DNS超时)
Permerror 永久性错误(如记录格式错误)

2014年发布的RFC 7208将SPF标准化。但SPF有一个根本性的局限:它验证的是SMTP信封中的MAIL FROM地址,而不是用户在邮件客户端看到的From地址。这两者可以不同。攻击者可以通过伪造From地址来绕过SPF检查——这正是DMARC后来要解决的问题。

DKIM:密码学签名进入邮件世界

2007年,DomainKeys Identified Mail(DKIM)在RFC 4871中被标准化(后被RFC 6376更新)。DKIM采用完全不同的思路:不验证发送者是谁,而是验证邮件内容是否被篡改。

DKIM的工作原理基于公钥密码学:

  1. 发送方服务器生成一对密钥:私钥保存在服务器上,公钥发布在DNS中
  2. 发送邮件时,服务器用私钥对邮件的指定部分进行签名,签名结果添加到邮件头
  3. 接收服务器从DNS获取公钥,验证签名是否有效

一个DKIM签名头部如下:

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail;
    h=from:to:subject:date;
    bh=2gusf+7Lh2pE3S8fE7JqQ+YQVfKOmMmEH4=;
    b=K7h3f...

各字段含义:

  • v=1:DKIM版本
  • a=rsa-sha256:签名算法
  • d=example.com:签名域名
  • s=mail:选择器(selector),用于定位公钥
  • h=...:被签名的邮件头字段
  • bh=...:邮件正文的哈希值
  • b=...:签名值

公钥存储在DNS中,格式如下:

mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCS..."

DKIM的关键优势是签名在邮件转发过程中仍然有效。只要邮件内容未被修改,任何中间服务器都可以验证签名。这使得DKIM成为验证邮件完整性的可靠手段。

但DKIM也有局限:它只证明邮件来自某个域名的授权服务器,不证明发件人身份的真实性。一个攻击者可以注册一个看起来相似的域名(如examp1e.com),正确配置DKIM,然后发送伪造邮件。

DMARC:统一策略与反馈机制

2015年,RFC 7489定义了Domain-based Message Authentication, Reporting, and Conformance(DMARC)。DMARC解决了SPF和DKIM各自为战的问题,建立了统一的策略框架。

DMARC的核心概念是"对齐"(alignment)。一封邮件要通过DMARC验证,必须满足:

  1. 通过SPF验证,且SPF验证的域名与From地址的域名一致
  2. 或者通过DKIM验证,且DKIM签名的域名与From地址的域名一致

这意味着即使SPF和DKIM都通过,如果域名不一致,DMARC仍然会失败。

DMARC记录示例:

_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

关键字段:

  • p=quarantine:对验证失败的邮件的处理策略(none/quarantine/reject)
  • rua=...:接收聚合报告的邮箱地址

DMARC的三种策略级别:

策略 行为
none 只监控,不干预
quarantine 将验证失败的邮件标记为可疑
reject 直接拒绝验证失败的邮件

DMARC的一个重要创新是报告机制。邮件服务商会定期向域名所有者发送报告,详细说明哪些邮件通过了验证、哪些失败了、失败原因是什么。这些报告对于诊断邮件投递问题至关重要。

声誉系统:看不见的评判者

即使完美配置了SPF、DKIM和DMARC,邮件仍可能进入垃圾箱。这是因为现代邮件过滤的核心机制已经从基于规则转向基于声誉。

Spamhaus的技术文档指出,在当前的邮件生态系统中,IP/域名声誉和用户参与度是决定邮件命运的两大要素。声誉系统综合考量多个维度:

垃圾陷阱命中:垃圾陷阱(spam trap)是专门用来捕获非法邮件收集行为的邮箱地址。如果一个地址从未主动订阅却收到邮件,这个邮件很可能是通过非法购买或爬虫收集的。命中垃圾陷阱会对发件人声誉造成严重打击。

投诉率:用户点击"标记为垃圾邮件"的频率。Google要求批量发送者将投诉率控制在0.3%以下,超过这个阈值会触发惩罚性措施。

参与度指标:打开率、点击率、回复率。积极的参与行为会提升声誉,反之则会降低。值得注意的是,苹果的邮件隐私保护(MPP)使得打开率的测量变得不可靠,邮件服务商正在转向其他指标。

弹回率:发送到无效地址的比例。高弹回率暗示发件人的邮件列表质量差,会损害声誉。

发送模式:稳定的发送量优于突然的爆发。Spamhaus警告,“爆发式"的发送模式会损害即使是建立已久的声誉。

IP声誉 vs 域名声誉

在2010年前后,IP声誉是主要的过滤依据。但随着IPv6的普及,情况发生了变化。IPv6提供了340万亿亿亿亿个地址,这意味着攻击者可以轻易"燃烧"IP地址,传统的IP封堵策略变得不再有效。

Spamhaus的文档指出,域名声誉的重要性已经超过了IP声誉。域名更稳定、更难频繁更换,因此成为更可靠的信任锚点。这也是为什么2024年的新政策要求批量发送者必须配置SPF、DKIM和DMARC——这些协议绑定的都是域名,而非IP。

内容过滤:从关键词到AI

即使通过了认证和声誉检查,邮件仍可能因内容被拦截。内容过滤技术在过去二十年经历了重大演进。

贝叶斯过滤器的革命

2002年8月,Paul Graham发表了《A Plan for Spam》一文,提出了基于贝叶斯统计的垃圾邮件过滤方法。这个方法的优雅之处在于它的简单性:

  1. 维护两个语料库:垃圾邮件和非垃圾邮件
  2. 统计每个词在两个语料库中出现的频率
  3. 计算每个词的"垃圾概率”:包含该词的邮件是垃圾邮件的概率
  4. 对于新邮件,选取15个最"有趣"的词(概率离0.5最远的词)
  5. 使用贝叶斯公式计算综合概率

Graham报告称,这种方法在他的测试中达到了每1000封垃圾邮件漏掉不到5封、零误判的惊人效果。

更关键的是,贝叶斯过滤器是自适应的。当垃圾邮件发送者开始使用"c0ck"代替"cock"来规避过滤时,贝叶斯过滤器会自动学习:从未见过"c0ck"这个词,但很快就会发现它几乎只出现在垃圾邮件中,从而将其标记为高垃圾概率词。

AI时代的过滤

现代邮件服务商已经超越了简单的贝叶斯模型。Litmus 2025年的报告指出,Gmail和Microsoft现在使用大型语言模型来分析邮件内容,识别不自然的语气、重复的模式或机器生成的模板。

这些AI系统能够理解上下文。一个单独的"免费"词汇不会触发警告,但如果邮件同时包含"免费"、“限时”、“点击”、“优惠"等多个元素,且来自一个新域名,AI可能会将其标记为可疑。

AI过滤也带来了新挑战。MailReach的统计显示,使用AI生成邮件内容但不加人工润色的发送者,投递率明显较低。这是因为AI生成的内容往往有可识别的模式。

2024-2025:政策变革的关键年

2024年2月1日,Google和Yahoo开始强制执行新的发送者要求。这些要求标志着邮件投递规则的重大变化。

新政策的核心要求

对于所有发送者:

  • 必须配置SPF或DKIM认证
  • 发送域名或IP必须有有效的正向和反向DNS记录
  • 必须使用TLS连接传输邮件
  • 垃圾邮件投诉率必须低于0.3%

对于批量发送者(每天发送超过5000封邮件到Gmail账户):

  • 必须同时配置SPF和DKIM
  • 必须配置DMARC
  • 必须支持一键退订
  • From地址的域名必须与SPF或DKIM的域名对齐

2025年5月5日,Microsoft开始在其消费者邮箱服务(outlook.com、hotmail.com、live.com)执行类似要求。未合规域名的邮件将被路由到垃圾邮件文件夹。

一键退订的技术实现

Google要求批量发送者在营销和订阅邮件中实现一键退订功能。这需要在邮件头部添加两个字段:

List-Unsubscribe-Post: List-Unsubscribe=One-Click
List-Unsubscribe: <https://example.com/unsubscribe?id=xxx>

当用户点击Gmail中的一键退订按钮时,Gmail会向指定URL发送POST请求:

POST /unsubscribe?id=xxx HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

List-Unsubscribe=One-Click

发送者必须在两个工作日内处理退订请求。根据MailReach的统计,实现一键退订的发送者投诉率平均低于0.1%。

诊断:当邮件进入垃圾箱时

检查SMTP错误代码

当邮件被拒绝时,发送服务器会收到一个退信通知(bounce message),其中包含错误代码。常见的错误代码:

550 5.7.1:访问被拒绝。最常见的原因包括:

  • 发送IP在黑名单上
  • SPF/DKIM/DMARC验证失败
  • 发送者声誉过低

550 5.7.26:未通过DMARC验证。Gmail特有的错误代码,表示邮件未通过域名对齐检查。

421 4.7.0:临时性错误。通常表示发送速率超过限制或IP声誉问题。

使用诊断工具

Google Postmaster Tools:提供发送到Gmail的邮件的详细统计,包括声誉分数、垃圾邮件率、认证结果。

MXToolbox:检查IP和域名是否在主要黑名单上,验证DNS记录配置。

Mail Tester:发送测试邮件到指定地址,获得详细的评分报告和改进建议。

DMARC分析工具:解析DMARC报告,识别认证失败的模式。

常见问题排查

问题:SPF通过但DMARC失败

  • 检查SPF域名与From域名是否一致
  • 确认是否使用了第三方发送服务但未正确配置include

问题:DKIM签名在转发后失效

  • 某些邮件列表会修改邮件内容,破坏DKIM签名
  • 考虑要求转发者实现ARC(Authenticated Received Chain)

问题:声誉良好但投诉率高

  • 检查邮件列表的订阅流程,确保有明确的opt-in
  • 审查邮件内容是否过于营销化
  • 考虑发送重新确认邮件给长期不活跃的订阅者

最佳实践:建立持久的投递能力

认证配置

SPF

  • 列出所有合法的发送IP和服务
  • 使用include:包含第三方发送服务
  • -all结束(拒绝所有未授权的IP)
  • 避免超过10次DNS查询限制

DKIM

  • 使用2048位密钥(Google的最低要求是1024位)
  • 定期轮换密钥(建议每年)
  • 签名关键邮件头字段(From, To, Subject, Date)

DMARC

  • p=none开始,监控报告
  • 确认无问题后升级到p=quarantine
  • 最终目标是p=reject

声誉建设

新域名/IP预热

  • 从小批量发送开始(每天几十封)
  • 选择高参与度的订阅者作为首批接收者
  • 逐步增加发送量(每周翻倍)
  • 持续监控投诉率和声誉分数

列表管理

  • 实施双重opt-in确认
  • 及时处理退订请求和弹回
  • 定期清理不活跃订阅者
  • 永远不要购买邮件列表

内容优化

  • 避免垃圾邮件触发词
  • 保持文本与图片的比例合理
  • 确保链接域名与发送域名相关
  • 提供明确的发件人身份信息

未来的挑战

邮件投递的博弈仍在继续。随着AI技术的进步,垃圾邮件发送者也在使用更复杂的手段:AI生成的内容可以避开传统的关键词过滤,深度伪造技术可以创建高度逼真的钓鱼邮件。

同时,隐私保护措施也在改变游戏规则。苹果的邮件隐私保护使得打开率变得不可靠,欧盟的GDPR和美国的CAN-SPAM法案对邮件营销提出了更严格的要求。

对于发送者而言,理解这些技术背后的原理比记住配置步骤更重要。邮件投递不是一个可以一次性解决的问题,而是一个需要持续关注和优化的过程。建立声誉需要数月时间,但毁掉它只需要几次错误决策。

在可以预见的未来,邮件仍然是企业沟通的核心渠道。投入时间理解并正确配置邮件认证,建立和维护良好的发送声誉,是任何依赖邮件进行业务沟通的组织的基本功。这不再是可选项,而是必需品。


参考资料

  1. RFC 7208: Sender Policy Framework (SPF) for Authorizing Use of Domains in Email. IETF, April 2014.
  2. RFC 6376: DomainKeys Identified Mail (DKIM) Signatures. IETF, September 2011.
  3. RFC 7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC). IETF, March 2015.
  4. Validity. 2025 Email Deliverability Benchmark Report.
  5. Google. Email sender guidelines. Google Workspace Admin Help.
  6. Spamhaus. How does email reputation work? Spamhaus Resource Hub.
  7. MailReach. Email Deliverability Statistics 2025: Benchmarks & Trends.
  8. Paul Graham. A Plan for Spam. August 2002.
  9. Microsoft. Outlook’s New Requirements for High-Volume Senders. Tech Community Blog, April 2025.
  10. Cloudflare. What are DMARC, DKIM, and SPF? Cloudflare Learning Center.