← RFC Reference

RFC 3834: 电子邮件中的自动响应

Standards Track Mailing Lists & Header Fields Published March 2026
ELI5: 当你设置"离开办公室"自动回复时,是什么阻止两个自动回复器互相回复呢?RFC 3834 定义了规则:如何标记自动消息、如何检测和抑制循环,以及何时适合发送自动回复。这就是为什么你的假期回复不会引发无限的电子邮件风暴。

为什么存在这个标准

自动电子邮件回复无处不在:休假/不在办公室消息、已读回执、质询-回应垃圾邮件过滤器、工单系统确认和通知摘要。没有规则,自动回复器会创建危险的反馈循环:

  1. Alice的自动回复器回复Bob的消息。
  2. Bob的自动回复器回复Alice的自动回复。
  3. Alice的自动回复器回复Bob的自动回复。
  4. 无限重复,淹没两个邮箱和网络。

RFC 3834通过定义Auto-Submitted头字段和一套规则来防止这种情况,每个自动回复器都必须遵守这些规则。

工作原理

Auto-Submitted头字段

每条自动生成的消息必须包含Auto-Submitted头。定义的值有:

值 含义 示例
no 消息由人创建(如果头不存在则为默认值) 由人撰写的普通电子邮件
auto-generated 消息自动生成,不是对另一条消息的响应 计划报告、监控警报、系统通知
auto-replied 消息是对另一条消息的自动响应 休假回复、不在办公室、已读回执
auto-notified 消息是关于另一条消息的自动通知 投递状态通知、处置通知
; 休假自动回复
From: alice@example.com
To: bob@example.com
Subject: Re: Project update
Auto-Submitted: auto-replied
In-Reply-To: <msg-id-from-bob@example.com>

我将在1月15日前不在办公室。
有紧急事项,请联系charlie@example.com。

核心规则:永远不要自动回复自动回复

发送任何自动响应之前,回复器必须检查传入消息本身是否自动生成。如果是,则不发送自动响应。检查如下:

  1. 检查Auto-Submitted头。如果存在且不等于no,则不响应。
  2. 检查空退信地址。如果信封发件人(MAIL FROM)是<>,则不响应。退信和DSN使用空退信地址。
  3. 检查Precedence头。如果值是bulk、junk或list,则不响应。(这是RFC 3834之前的传统约定,但仍广泛使用。)
; 传入消息有Auto-Submitted头
Auto-Submitted: auto-replied

; 决定:不自动响应
; 这可以防止无限循环场景

速率限制

RFC 3834要求自动回复器限制对同一发件人的响应。标准做法:

信封和头要求

自动响应必须:

关键技术细节

不应触发自动响应的消息

RFC 3834列出了必须禁止自动响应的特定情况:

Auto-Submitted对比Precedence

较旧的Precedence头早于RFC 3834,并非正式标准化,但仍广泛使用:

; 遗留方法(仍然常见)
Precedence: bulk

; 符合标准的方法
Auto-Submitted: auto-generated

; 最佳实践:同时包含两个以获得最大兼容性
Precedence: bulk
Auto-Submitted: auto-generated

自动回复器应同时检查两个头。一些较旧的系统仅设置Precedence;一些较新的系统仅设置Auto-Submitted。同时检查两者可以防止与任何一个的循环。

X-Auto-Response-Suppress头

Microsoft Exchange引入了一个非标准但广泛支持的头:

X-Auto-Response-Suppress: All

可能的值包括DR(投递报告)、NDR(未投递报告)、RN(已读通知)、NRN(未读通知)、OOF(不在办公室)和AutoReply。许多发送系统在事务性和营销电子邮件上设置All以禁止来自Exchange/Outlook的所有自动响应。

检测邮件列表消息

对邮件列表消息的自动响应特别有问题——它们会发送到整个列表。检查:

; 这些中的任何一个都表示列表消息
List-Id: <dev.lists.example.com>
List-Unsubscribe: <mailto:unsub@lists.example.com>
Precedence: list
X-Mailing-List: dev@lists.example.com

示例

格式正确的休假回复

; 信封
MAIL FROM:<>
RCPT TO:<bob@example.com>

; 头
From: alice@example.com
To: bob@example.com
Date: Mon, 10 Mar 2025 09:00:00 +0000
Subject: Re: Q1 Planning
Auto-Submitted: auto-replied
In-Reply-To: <orig-msg-id@example.com>
References: <orig-msg-id@example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8

感谢您的电子邮件。我于3月8日至15日不在办公室,
电子邮件访问受限。

有紧急事项,请联系charlie@example.com。

系统通知

From: noreply@monitoring.example.com
To: ops-team@example.com
Subject: [ALERT] CPU usage above 90% on web-prod-03
Auto-Submitted: auto-generated
Precedence: bulk
X-Auto-Response-Suppress: All

服务器web-prod-03已超过CPU阈值。
当前使用率:94%。立即调查。

常见错误

可递送性影响

Related RFCs