← RFC Reference

RFC 3834: Automatic Responses in Email

Standards Track Mailing Lists & Header Fields Published August 2004
ELI5: When you set an “out of office” auto-reply, what stops two auto-responders from replying to each other forever? RFC 3834 defines the rules: how to mark a message as automatic, how to detect and suppress loops, and when it is appropriate to send an auto-response at all. It is the reason your vacation reply does not start an infinite email storm.

Why This Exists

Automatic email responses are everywhere: vacation/out-of-office messages, read receipts, challenge-response spam filters, ticket system acknowledgments, and notification digests. Without rules, auto-responders create dangerous feedback loops:

  1. Alice's auto-responder replies to Bob's message.
  2. Bob's auto-responder replies to Alice's auto-reply.
  3. Alice's auto-responder replies to Bob's auto-reply.
  4. Repeat forever, flooding both mailboxes and the network.

RFC 3834 prevents this by defining the Auto-Submitted header field and a set of rules that every automatic responder must follow.

How It Works

The Auto-Submitted Header

Every automatically generated message must include an Auto-Submitted header. The defined values are:

Value Meaning Example
no Message was created by a human (the default if header is absent) Normal email composed by a person
auto-generated Message was generated automatically, not in response to another message Scheduled reports, monitoring alerts, system notifications
auto-replied Message is an automatic response to another message Vacation replies, out-of-office, read receipts
auto-notified Message is an automatic notification about another message Delivery status notifications, disposition notifications
; Vacation auto-reply
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>

I'm out of the office until January 15.
For urgent matters, contact charlie@example.com.

The Core Rule: Never Auto-Reply to Auto-Replies

Before sending any automatic response, the responder must check whether the incoming message is itself automatic. If it is, no auto-response is sent. The checks are:

  1. Check Auto-Submitted header. If present and not equal to no, do not respond.
  2. Check for empty return path. If the envelope sender (MAIL FROM) is <>, do not respond. Bounces and DSNs use an empty return path.
  3. Check Precedence header. If the value is bulk, junk, or list, do not respond. (This is a legacy convention predating RFC 3834 but still widely used.)
; Incoming message has Auto-Submitted header
Auto-Submitted: auto-replied

; Decision: DO NOT auto-respond
; This prevents the infinite loop scenario

Rate Limiting

RFC 3834 requires auto-responders to limit responses to the same sender. The standard practice:

Envelope and Header Requirements

An automatic response must:

Key Technical Details

Messages That Should Not Trigger Auto-Responses

RFC 3834 lists specific cases where auto-responses must be suppressed:

Auto-Submitted vs. Precedence

The older Precedence header predates RFC 3834 and is not formally standardized, but remains widely used:

; Legacy approach (still common)
Precedence: bulk

; Standards-compliant approach
Auto-Submitted: auto-generated

; Best practice: include both for maximum compatibility
Precedence: bulk
Auto-Submitted: auto-generated

Auto-responders should check both headers. Some older systems only set Precedence; some newer systems only set Auto-Submitted. Checking both prevents loops with either.

The X-Auto-Response-Suppress Header

Microsoft Exchange introduced a non-standard but widely supported header:

X-Auto-Response-Suppress: All

Possible values include DR (delivery reports), NDR (non-delivery reports), RN (read notifications), NRN (non-read notifications), OOF (out-of-office), and AutoReply. Many sending systems set All on transactional and marketing email to suppress all auto-responses from Exchange/Outlook.

Detecting Mailing List Messages

Auto-responses to mailing list messages are particularly problematic — they go to the entire list. Check for:

; Any of these indicate a list message
List-Id: <dev.lists.example.com>
List-Unsubscribe: <mailto:unsub@lists.example.com>
Precedence: list
X-Mailing-List: dev@lists.example.com

Examples

A Well-Formed Vacation Reply

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

; Headers
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

Thank you for your email. I am out of the office from
March 8-15 with limited access to email.

For urgent matters, please contact charlie@example.com.

A System Notification

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

Server web-prod-03 has exceeded the CPU threshold.
Current usage: 94%. Investigate immediately.

Common Mistakes

Deliverability Impact

Related RFCs