← RFC Reference

RFC 6854: From 和 Sender 报头字段中的组语法

Standards Track Mailing Lists & Header Fields Published March 2026
ELI5: 通常,电子邮件的"From"标头必须包含电子邮件地址。RFC 6854 允许"From"标头包含一个没有电子邮件地址的组名 — 例如说"From: The Engineering Team;",没有具体的人员。这对于系统生成的消息、邮件列表和没有单个作者的情况很有用。

为什么这个功能存在

RFC 5322 要求 From 头包含一个或多个邮箱地址。但某些邮件确实没有单一人类作者:

RFC 6854 更新了 RFC 5322,允许在 From 和 Sender 头中使用组语法。组语法可以包含零个或多个邮箱地址,意味着你可以有一个带有描述性名称但内部没有实际地址的 From 头。

工作原理

组语法基础

组语法已在 RFC 5322 中为 To 和 Cc 等头定义过。它看起来像这样:

; 组语法:display-name ":" [mailbox-list] ";"

; 带成员的组(已在 To/Cc 中允许)
To: Engineering Team: alice@example.com, bob@example.com;

; 空组 — 无地址(RFC 6854 的关键创新)
From: Engineering Team:;

关键的新功能是 From 中的空组:显示名称后跟 :;,冒号和分号之间没有地址。

在 From 中使用组语法时的要求

RFC 6854 设置了严格的条件:

  1. 需要 Sender 头。 当 From 字段使用组语法(尤其是空组)时,消息必须包含一个 Sender 头,其中包含有效的邮箱地址。这确保消息始终有一个负责地址。
  2. Sender 地址必须是真实的、可递送的邮箱。 它必须能够接收回复和退信。
  3. 谨慎使用。 RFC 明确指出这仅用于无法识别单一作者的情况。普通人对人的电子邮件应继续在 From 中使用标准邮箱语法。

实际示例

; 自动监控告警 — 无人类作者
From: Monitoring System:;
Sender: noc@example.com
To: ops-team@example.com
Subject: [ALERT] Database connection pool exhausted

; 邮件列表摘要 — 多个作者聚合
From: Dev List Digest:;
Sender: dev-list-owner@lists.example.org
To: dev-list@lists.example.org
Subject: Dev List Digest, Vol 42, Issue 7

; 带一个成员的组 — 代表团队的命名作者
From: Security Team: security-lead@example.com;
To: all-staff@example.com
Subject: Mandatory password rotation notice

与标准 From 的区别

From 语法 示例 需要 Sender?
单个邮箱 From: alice@example.com 否
带显示名称的邮箱 From: Alice <alice@example.com> 否
多个邮箱 From: alice@a.com, bob@b.com 是
带成员的组 From: Team: alice@a.com; 是(如果与唯一成员不同)
空组(RFC 6854) From: Team:; 是(强制)

关键技术细节

与 DKIM 的交互

DKIM 对 From 头进行签名。当 From 包含组语法时,DKIM 对字面头值进行操作。DKIM 签名中的 d= 域不需要与 From 组中的地址匹配(因为可能没有)。相反,DMARC 的 DKIM 对齐回退到 Sender 头或信封发件人。

与 DMARC 的交互

DMARC 对齐要求 From 域与 DKIM d= 域或 SPF 认证的信封发件人域匹配。当 From 中有空组时,没有域可对齐。实际上,这意味着:

这使得空组 From 头在互联网面向的电子邮件中不常见,因为 DMARC 现已广泛部署。

客户端显示行为

邮件客户端对 From 中的组语法处理不一致:

不一致的显示是此功能的主要实践限制。

ABNF 语法更新

RFC 6854 更新了 RFC 5322 中 from 和 sender 字段的语法:

; RFC 5322 原始
from = "From:" mailbox-list CRLF

; RFC 6854 更新
from = "From:" (mailbox-list / address-list) CRLF

; address-list 允许组语法
; group = display-name ":" [group-list] ";"

常见错误

可递送性影响

Related RFCs