RFC 9990(Sieve Email Filtering: DMARC Reject Codes)是什么?它给接收方提供了哪些新的过滤信号?

RFC 9990 是 DMARCbis 标准集中一个相对轻量但非常重要的扩展。它扩展了 Sieve 邮件过滤语言(RFC 5228),允许邮件接收方根据 DMARC 验证结果中具体的失败原因编写更精细的过滤规则。这相当于将 DMARC 评估从"通过/失败"的二元结果升级为具有丰富诊断信息的"结构化结果"。

一、背景:为什么需要 RFC 9990?

在 RFC 7489 时代,接收方只能通过 DMARC 的二元结果(pass / fail)配合策略(none / quarantine / reject)来决定邮件处理。但这种粗粒度决策存在以下问题:

RFC 9990 正是为了解决这些问题而设计的。

二、RFC 9990 定义的新 Sieve 扩展

RFC 9990 定义了一个新的 Sieve 能力字符串 :dmarc-reject 和相应的测试命令。核心语法如下:

require [":dmarc-reject"];

if dmarc :reject-code ["dmarc-reject", "dmarc-forwarding"] {
    discard;
    stop;
}

定义的拒绝码(Reject Codes)

RFC 9990 规范定义了一组标准化的 DMARC 拒绝码:

拒绝码含义行动建议
dmarc-rejectDMARC 验证失败且域策略要求拒绝丢弃/拒绝邮件
dmarc-quarantineDMARC 验证失败且策略要求隔离放入垃圾邮件文件夹
dmarc-failedDMARC 验证失败但策略为 none标记但放行,用于监控
dmarc-forwarding认证失败系因邮件转发链导致(与 ARC 交互后判定)酌情处理,通常放行
dmarc-spf-failSPF 对齐失败可选隔离,记录告警
dmarc-dkim-failDKIM 对齐失败可选隔离,记录告警
dmarc-both-failSPF 和 DKIM 均未对齐采取较高等级的行动

三、接收方如何使用这些新信号

1. 差异化策略实施

企业邮件网关可以根据拒绝码实施不同的响应:

require [":dmarc-reject", "fileinto", "reject"];

if dmarc :reject-code "dmarc-both-fail" {
    reject "550 5.7.1 DMARC policy violation - both SPF and DKIM failed";
} elsif dmarc :reject-code "dmarc-spf-fail" {
    fileinto "INBOX.Suspicious";
} elsif dmarc :reject-code "dmarc-forwarding" {
    fileinto "INBOX";
    # 转发邮件通常放行
}

2. 垃圾邮件评分调整

MTA 或 MDA 可以在垃圾邮件评分系统中增加基于 DMARC 拒绝码的打分规则:

3. 日志和报警改进

管理员可以在邮件日志中根据拒绝码建立更精确的监控系统:

四、RFC 9990 与现有邮件过滤体系的关系

RFC 9990 不是要替代现有的垃圾邮件过滤(SpamAssassin、Rspamd 等),而是提供一个新的信号维度。接收方可以将 DMARC 拒绝码作为过滤规则的输入之一,与已有的反垃圾邮件评分体系协同工作。

对 Sieve 环境的兼容性:RFC 9990 要求邮件接收方的 Sieve 实现(如 Dovecot Pigeonhole、ManageSieve)支持 :dmarc-reject 扩展。管理员需要确保 MTA/MDA 软件版本达到以下最低要求:

五、部署建议

  1. 检查你的邮件服务器 Sieve 实现是否支持 :dmarc-reject 扩展
  2. 从简单的拒绝码监控开始——在 Sieve 脚本中添加日志规则,记录 dmarc-forwarding 等码的出现频次
  3. 逐步引入差异化策略:对 dmarc-both-fail 直接拒绝,对 dmarc-forwarding 放行
  4. 与现有的 DMARC 报告分析联动——使用 RFC 9991 报告的 pcf 字段验证拒绝码的使用效果

参考文献

  1. RFC 9990 — Sieve Email Filtering: DMARC Reject Codes (2026)
  2. RFC 5228 — Sieve: An Email Filtering Language
  3. RFC 9989 — DMARCbis Core Specification
  4. Dovecot Pigeonhole Sieve Plugin Documentation

引用格式:ztpop.net 邮件技术知识库. "RFC 9990 Sieve Email Filtering: DMARC Reject Codes 是什么?" https://www.ztpop.net/kb/faq/dmarcbis-faq-03.html. 2026-07-29. CC-BY 4.0