Skip to content
Novus Examples
eml1.4 KB

EML — message/rfc822 Forward of a Multipart Message

A forward that embeds the whole original message, headers and all, as a message/rfc822 part — and that original is itself a multipart with its own attachment and threading headers. Extractors routinely stop at the message/rfc822 boundary and miss the nested file.

Preview — first 42 lineseml
From: Maya Chen <maya@brightside.example>
To: Meridian Ops <ops@meridiansupply.example>
Subject: Fwd: Re: Standing order for Q1 (SAMPLE)
Date: Thu, 12 Feb 2026 10:05:00 -0800
Message-ID: <p7-fwd-outer@brightside.example>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_p7_fwd_outer"

--=_p7_fwd_outer
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Forwarding Sam's reply with the quote still attached.
--=_p7_fwd_outer
Content-Type: message/rfc822
Content-Disposition: attachment; filename="forwarded.eml"

From: Sam Rivera <sam@meridiansupply.example>
To: Maya Chen <maya@brightside.example>
Subject: Re: Standing order for Q1 (SAMPLE)
Date: Mon, 09 Feb 2026 11:30:00 -0800
Message-ID: <p7-fwd-inner@brightside.example>
In-Reply-To: <p7-fwd-root@brightside.example>
References: <p7-fwd-root@brightside.example>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_p7_fwd_inner"

--=_p7_fwd_inner
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Quote attached. Held until 30 Jun 2026.
--=_p7_fwd_inner
Content-Type: text/plain; charset="utf-8"; name="quote-SAMPLE.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="quote-SAMPLE.txt"

UXVvdGUgUS0yMDI2LTAxNDggKFNBTVBMRSkNCkZpbHRlciBwYXBlcnMgIDEyLjAwDQpHbG92ZXMg
IDYuOTANCg==
--=_p7_fwd_inner--
--=_p7_fwd_outer--

Specifications

Wave
p7
Seed
20260807
Structure
multipart/mixed > message/rfc822 > multipart/mixed
Inner Has Attachment
true
Inner Has Thread Headers
true
Inner Message Id
<p7-fwd-inner@brightside.example>
Line Endings
CRLF (RFC 5322)

Testing contract

Expected to pass
Scenario
Extract attachments and thread identifiers from a message whose message/rfc822 part contains another multipart message.
Expected result
quote-SAMPLE.txt is found inside the embedded message, and the inner Message-ID and References are readable without altering the outer message's own threading.

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 — message/rfc822 Forward of a Multipart Message” 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) · multipart/mixed > message/rfc822 > multipart/mixed. 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("nested-forwarded-rfc822.eml", "rb"))
print(msg["subject"], msg["from"])

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