EML — Thread Depth 4 (Large Headers)
Threaded SAMPLE reply at depth 4 with a long References chain and bulky X-headers.
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
From: User4 SAMPLE <u4@brightside.example>
To: Sam Rivera <sam@meridiansupply.example>
Subject: Re: Deep thread SAMPLE (4)
Date: Mon, 14 Jan 2026 12:00:00 -0800
Message-ID: <thread-depth-04@brightside.example>
In-Reply-To: <thread-depth-03@brightside.example>
References: <thread-root@brightside.example>
<thread-depth-01@brightside.example> <thread-depth-02@brightside.example>
<thread-depth-03@brightside.example>
X-Novus-Sample-0: value-4-0-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-Novus-Sample-1: value-4-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-Novus-Sample-2: value-4-2-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-Novus-Sample-3: value-4-3-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-Novus-Sample-4: value-4-4-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
VGhyZWFkIGRlcHRoIFNBTVBMRSByZXBseSAjNC4K
Specifications
- Depth
- 4
- References Count
- 4
- Custom Headers
- 5
- Wave
- G
Testing contract
Expected to pass- Scenario
- Exercise EML — Thread Depth 4 (Large Headers) in its threading workflow. Threaded SAMPLE reply at depth 4 with a long References chain and bulky X-headers.
- Expected result
- subject='Re: Deep thread SAMPLE (4)'; content type=text/plain; MIME leaf parts=1. Declared feature checks: depth=4; referencesCount=4; customHeaders=5.
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 — Thread Depth 4 (Large Headers)” 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: EML · 899 bytes. 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("depth-04.eml", "rb"))
print(msg["subject"], msg["from"])Related files
- emlEML — Exchange-Style Thread-Index Alongside ReferencesA reply carrying the Exchange threading headers — Thread-Topic and a SAMPLE Thread-Index — next to the standard References chain, plus an X-MS header with an empty value. Empty header values are legal and are a common cause of parser exceptions.

- emlEML — References Chain With Repeated Message-IDsA References header that lists the same two Message-IDs twice, in a repeating order — what a client produces when it appends without checking. A threader that treats the chain as a literal path builds a cycle or reports a depth of four for a two-deep thread.

- emlEML — Reply Whose Parent Message Does Not ExistThe immediate parent named by In-Reply-To was never delivered, but its grandparent is in the References chain. A threader has to fall back up the chain instead of orphaning the message — the everyday case after a deleted or filtered message.

- emlEML — Reply With In-Reply-To and No ReferencesA reply that declares its parent only through In-Reply-To. Threading code that builds ancestry from References alone files this message as a new thread root, splitting a conversation in the message list.

- emlEML — Reply With References and No In-Reply-ToThe same reply expressed the other way round: a References chain with no In-Reply-To. Together with its twin it isolates which of the two headers a threading implementation actually reads, since either alone is sufficient under RFC 5322.

- 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.

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