← RFC Reference

RFC 6522: Multipart/Report Media Type (Updated)

Current Standard Delivery Status & Bounce Handling Obsoletes RFC 3462 MIMEDSNReporting
ELI5: When a mail server needs to tell you something went wrong (or right) with your email, it wraps the report in a standardized envelope called multipart/report. Think of it as a folder with three pockets: one holds a plain-English explanation, the second holds a machine-readable report, and the third holds a copy of the original message. RFC 6522 is the updated spec for that folder.

Why This Exists

Email generates many types of automated reports: bounce notifications (RFC 3464), spam complaints (RFC 5965), authentication failure reports (RFC 6591), and TLS failure reports (RFC 8460). All of these need a common container format that can carry both a human-readable summary and a machine-parseable report.

multipart/report is that container. It was originally defined in RFC 3462, which itself updated RFC 1892. RFC 6522 is the current version, bringing the specification in line with modern MIME registration procedures and clarifying ambiguities from the earlier drafts.

The key changes from RFC 3462 to 6522:

How It Works

A multipart/report message is a MIME multipart message with a required report-type parameter that identifies the kind of report inside. It contains two or three MIME parts in a specific order:

  1. Human-readable part (text/plain or text/html) — a summary for humans who open the message in a mail client.
  2. Machine-readable report — the structured data. The content type depends on the report-type:
    • delivery-statusmessage/delivery-status (RFC 3464)
    • feedback-reportmessage/feedback-report (RFC 5965)
    • tlsrptapplication/tlsrpt+json (RFC 8460)
  3. Original message (optional) — message/rfc822 (full message) or text/rfc822-headers (headers only) of the message that triggered the report.

Structure Example: DSN Bounce

From: mailer-daemon@mail.example.org
To: sender@example.com
Subject: Delivery Status Notification (Failure)
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
    boundary="REPORT-BOUNDARY-001"

--REPORT-BOUNDARY-001
Content-Type: text/plain

Your message to user@example.org could not be delivered.
The mailbox does not exist.

--REPORT-BOUNDARY-001
Content-Type: message/delivery-status

Reporting-MTA: dns; mail.example.org
Arrival-Date: Tue, 10 Mar 2026 14:22:00 -0500

Final-Recipient: rfc822;user@example.org
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 Mailbox not found

--REPORT-BOUNDARY-001
Content-Type: text/rfc822-headers

From: sender@example.com
To: user@example.org
Subject: Invoice #1234
Message-ID: <inv-1234@example.com>

--REPORT-BOUNDARY-001--

Structure Example: ARF Complaint

Content-Type: multipart/report; report-type=feedback-report;
    boundary="ARF-BOUNDARY-001"

--ARF-BOUNDARY-001
Content-Type: text/plain

This is a spam complaint for a message from 203.0.113.10.

--ARF-BOUNDARY-001
Content-Type: message/feedback-report

Feedback-Type: abuse
User-Agent: FBL/1.0
Version: 1
Source-IP: 203.0.113.10

--ARF-BOUNDARY-001
Content-Type: message/rfc822

[original message]

--ARF-BOUNDARY-001--

Key Technical Details

The report-type Parameter

The report-type parameter on the Content-Type header is required and tells parsers what kind of machine-readable data to expect in the second MIME part:

report-type Second Part Content-Type Defined By
delivery-status message/delivery-status RFC 3464
disposition-notification message/disposition-notification RFC 8098
feedback-report message/feedback-report RFC 5965
tlsrpt application/tlsrpt+json RFC 8460

Part Ordering Rules

Internationalization

RFC 6522 adds support for message/global and message/global-headers as alternatives for the third part, accommodating internationalized email addresses and headers per RFC 6531/6532.

Common Mistakes

Deliverability Impact

Related RFCs