EML — DSN Reporting Two Recipients With Different Outcomes
One multipart/report carrying two per-recipient blocks: a permanent 5.1.1 failure and a temporary 4.4.7 delay for the same original message. Bounce processors that read only the first block suppress a good address, or keep retrying a dead one.
From: Mail Delivery Subsystem <MAILER-DAEMON@mx1.meridiansupply.example>
To: Maya Chen <maya@brightside.example>
Subject: Delivery Status Notification (failure and delay) SAMPLE
Date: Mon, 16 Feb 2026 07:46:00 -0800
Message-ID: <p7-dsn-multi@mx1.meridiansupply.example>
Auto-Submitted: auto-replied
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status; boundary="=_p7_dsn_p7-dsn-multi"
--=_p7_dsn_p7-dsn-multi
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
This report covers two recipients of one message.
sam@meridiansupply.example delivery delayed, retrying until 20 Feb
dana@nonexistent.example permanent failure, no such user
--=_p7_dsn_p7-dsn-multi
Content-Type: message/delivery-status
Reporting-MTA: dns; mx1.meridiansupply.example
Arrival-Date: Mon, 16 Feb 2026 07:45:12 -0800
Final-Recipient: rfc822; dana@nonexistent.example
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx.nonexistent.example
Diagnostic-Code: smtp; 550 5.1.1 SAMPLE - no such user
Final-Recipient: rfc822; sam@meridiansupply.example
Action: delayed
Status: 4.4.7
Will-Retry-Until: Fri, 20 Feb 2026 07:45:12 -0800
Diagnostic-Code: smtp; 451 4.4.7 SAMPLE - queued, will retry
--=_p7_dsn_p7-dsn-multi
Content-Type: text/rfc822-headers
From: Maya Chen <maya@brightside.example>
To: Sam Rivera <sam@meridiansupply.example>
Subject: Standing order for Q1 (SAMPLE)
Date: Mon, 16 Feb 2026 07:45:00 -0800
Message-ID: <p7-dsn-original@brightside.example>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
--=_p7_dsn_p7-dsn-multi--
Specifications
- Wave
- p7
- Seed
- 20260807
- Report Type
- delivery-status
- Recipient Blocks
- 2
- Actions
- failed + delayed
- Statuses
- 5.1.1 + 4.4.7
- Line Endings
- CRLF (RFC 5322)
Testing contract
Expected to pass- Scenario
- Extract per-recipient outcomes from a DSN whose message/delivery-status part holds more than one recipient block.
- Expected result
- Two recipients are reported — dana@nonexistent.example as a permanent 5.1.1 failure and sam@meridiansupply.example as a retryable 4.4.7 delay.
What is a .eml file?
An EML file is a single email message stored in the RFC 822 / MIME format — plain-text headers (From, To, Subject, Date, Message-ID) followed by the body, which may be plain text, HTML, or a multipart structure with alternative bodies and file attachments encoded in base64.
How to use this file
Use an example EML to test email header parsing, MIME decoding, HTML-part handling, attachment extraction, and EML-to-other-format conversion.
How to use this file for testing
“EML — DSN Reporting Two Recipients With Different Outcomes” is a deterministic Novus Examples fixture for Email parsing, Conversion testing. Standards-compliant RFC 822 messages — plain, multipart text+HTML, and with an attachment — plus an MBOX mailbox, for testing header parsing, MIME decoding, attachment extraction, and mailbox splitting.
Documented properties for this file: seed 20260807 · CRLF (RFC 5322). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Email fixtures use fixed dates, message IDs, and MIME boundaries so runs are reproducible, and every address is fictional. Test header parsing, MIME decoding, attachment extraction, and EML/MBOX conversion against the documented structure.
Code examples
from email import policy
from email.parser import BytesParser
msg = BytesParser(policy=policy.default).parse(open("p7-dsn-multi-recipient.eml", "rb"))
print(msg["subject"], msg["from"])Related files
- emlEML — DSN Delayed SAMPLEmultipart/report delivery-status SAMPLE with action=delayed for DSN parsers.

- emlEML — DSN Delivered SAMPLEmultipart/report delivery-status SAMPLE with action=delivered for DSN parsers.

- emlEML — DSN Failed SAMPLEmultipart/report delivery-status SAMPLE with action=failed for DSN parsers.

- emlEML — DSN Relayed SAMPLEmultipart/report delivery-status SAMPLE with action=relayed for DSN parsers.

- emlBounce / Non-Delivery Report (EML)A bounce / non-delivery report (NDR) — a multipart/report message with a human-readable notice, a message/delivery-status part, and the original headers — for testing bounce parsing and delivery-status extraction.

- emlEmail with Attachment (EML)A multipart/mixed email with a base64-encoded CSV file attachment — for testing attachment detection, decoding, and extraction from an EML message.

Generated by generation/email_p7.py. Free for any use, no attribution required — license.