EML — UTF-8 Encoded Subject
An email whose Subject uses RFC 2047 UTF-8 encoded-words (café / crème) — for header decoding tests.
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
From: Brightside Cafe <news@brightside.example>
To: Sam Rivera <sam@meridiansupply.example>
Subject: =?utf-8?b?Q2Fmw6kg4oCUIGNyw6htZSBicsO7bMOpZSB3ZWVrIOKYlQ==?=
Date: Thu, 08 Jan 2026 09:15:00 -0800
Message-ID: <utf8-subj@brightside.example>
Q2Fmw6kgc3BlY2lhbHMgdGhpcyB3ZWVrOiBjcsOobWUgYnLDu2zDqWUgYW5kIG5hw692ZSBsYXR0
ZSBhcnQuCg==
Specifications
- Subject Encoding
- RFC 2047 UTF-8
- Body
- UTF-8 plain
Testing contract
Expected to pass- Scenario
- Exercise EML — UTF-8 Encoded Subject in its headers workflow. An email whose Subject uses RFC 2047 UTF-8 encoded-words (café / crème) — for header decoding tests.
- Expected result
- subject='Café — crème brûlée week ☕'; content type=text/plain; MIME leaf parts=1. Declared feature checks: subjectEncoding=RFC 2047 UTF-8; body=UTF-8 plain.
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 — UTF-8 Encoded Subject” is a deterministic Novus Examples fixture for Email parsing, Encoding detection, Internationalization. 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 · 428 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("utf8-subject.eml", "rb"))
print(msg["subject"], msg["from"])Related files
- emlEML — Adjacent Encoded-Words (Separator Must Disappear)A Subject split mid-word across two adjacent encoded-words. RFC 2047 requires the linear whitespace between them to be discarded, so the correct result is one word; a decoder that keeps the space renders a split that reads as a typo.

- emlEML — Encoded-Word Longer Than the 75-Character LimitOne unbroken encoded-word of 148 characters, well past the 75-character ceiling RFC 2047 sets. Real senders emit these, and a decoder should still recover the whole word rather than truncating it at 75 or rejecting the header.

- emlEML — Encoded-Word Subject Folded Over Four LinesA Subject folded across four physical lines, one encoded-word per line, which is the shape RFC 2047 prescribes for long international headers. Because the fold whitespace is discarded on decode, each continuation word carries its own leading space inside the encoded-word — omit that and the subject decodes run-together.

- emlEML — Encoded-Words in Display Names and a FilenameEncoded-words used everywhere they turn up in practice: both display names, the Subject, and — against the spec but very common — inside the quoted filename parameter, where RFC 2231 is the conformant mechanism. A tolerant parser decodes all four.

- emlEML — RFC 2047 Subject Mixing Three CharsetsA single Subject built from three encoded-words in three charsets and two encodings. RFC 2047 allows this, and it is what happens when a subject is quoted through several mail systems, so each word has to be decoded on its own terms.

- emlEML — RFC 2047 Subject: ISO-8859-1 'B' EncodingThe ISO-8859-1 Subject again, base64-encoded instead of Q-encoded. Base64 hides the charset entirely, so this is the fixture that catches a decoder guessing the charset from the octets instead of reading the encoded-word's charset token.

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