EML — Follow-up SAMPLE 2
Simple follow-up SAMPLE message #2 for mailbox threading pads.
From: Alex SAMPLE <alex@brightside.example>
To: Sam Rivera <sam@meridiansupply.example>
Subject: Follow-up SAMPLE B
Date: Wed, 2 Feb 2026 09:00:00 -0800
Message-ID: <pad-followup-02@brightside.example>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Pad follow-up SAMPLE body 2.
Specifications
- Role
- follow-up
- Wave
- G
Testing contract
Expected to pass- Scenario
- Exercise EML — Follow-up SAMPLE 2 in its threading workflow. Simple follow-up SAMPLE message #2 for mailbox threading pads.
- Expected result
- subject='Follow-up SAMPLE B'; content type=text/plain; MIME leaf parts=1. Declared feature checks: role=follow-up.
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 — Follow-up SAMPLE 2” is a deterministic Novus Examples fixture for Email parsing. 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: follow-up. 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("followup-02.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.

- emlEML — Thread Depth 1 (Large Headers)Threaded SAMPLE reply at depth 1 with a long References chain and bulky X-headers.

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