Mailward
ViewerConvertPricing

Sample MBOX and EML files

Invented mail for testing a viewer, converter or importer · 21 September 2026

A mail tool asks you to hand it your mailbox before you know whether it works. These two files exist so you do not have to: a small .mbox and a single .eml, written for this page, with the exact result a correct reader should show listed below — message by message, attachment by attachment. Open them in Mailward, or in anything else, and compare.

Nothing in them is real. No mailbox was exported to make them. The club and the people are made up, every address is on example.com, example.org or example.net — domains RFC 2606 reserves for documentation — and the attachments (a PNG, a one-page PDF, a CSV, a calendar invite, a text note) are generated byte for byte by the same script that writes the mail. Use the files freely — in test suites, bug reports, tutorials — without asking and without credit.

The mailbox: mailward-sample.mbox

mailward-sample.mbox — 9,537 bytes · 12 messages, 5 attachments · 5 Gmail labels

SHA-256 62369ae29c0b4f921a65329c95f0530b35a9f7c9d96ddb943184291a50a15035

Download · Open it in Mailward now (the file is fetched from this site and parsed in your browser tab)

A Google-Takeout-shaped mbox: each message starts with a From_ line and carries an X-Gmail-Labels header. It is 9,537 bytes of pure ASCII — every non-ASCII character travels as an encoded word, base64 or quoted-printable, the way real mail does. Line endings are LF except for message 8, which is CRLF throughout.

#Subject · senderDateLabelsAttachmentsWhat it exercises
1Welcome to the members list
Robin Example <secretary@example.org>
2026-09-01 08:05 UTCInbox—Plain 7-bit text, LF line endings — the baseline.
2Club newsletter — September
Example Rowing Club News <news@example.net>
2026-09-02 06:30 UTCInbox, Newsletter—multipart/alternative with quoted-printable parts: soft line breaks and UTF-8 punctuation (—, –) must decode, and the text part is what search reads.
3Receipt: boat storage fee
Club Treasurer <treasurer@example.org>
2026-09-03 09:15 UTCInbox, Receiptsreceipt-stamp.png (234 B)One base64 image attachment: the saved file must be byte-identical to the PNG this script generated.
4Regatta entry: form and fee table
Regatta Office <entries@example.org>
2026-09-04 14:40 UTCInbox, Receiptsentry-form.pdf (692 B)fees-2026.csv (150 B)Two attachments of different types (PDF and CSV) on one message; also published on its own as the sample .eml.
5練習スケジュールのお知らせ
練習係(サンプル) <practice@example.org>
2026-09-05 01:00 UTCInbox, 練習—Japanese: RFC 2047 encoded-word subject and sender name, base64 UTF-8 body, and a non-ASCII Gmail label written as an encoded word.
6Directions for Saturday
Robin Example <secretary@example.org>
2026-09-06 10:20 UTCInbox—mboxrd escaping: the body line "From the boathouse…" is stored as ">From the boathouse…" and must be shown without the ">".
7Gate code
Boathouse Manager <boathouse@example.org>
2026-09-07 16:45 UTCInbox—An unescaped body line that starts with "From " (writers that never escape produce these). It is not a separator — it has no date — so the message must not be cut in two.
8Re: Saturday practice
Casey Sample <casey@example.com>
2026-09-08 07:10 UTCSent—CRLF line endings throughout, including the From_ separator line, inside an otherwise LF file.
9Lost property: blue water bottle
Boathouse Manager <boathouse@example.org>
— (not a date)Inbox—A Date header that is not a date. The message must still be listed, with an empty date rather than an error or a wrong one.
10Re: Regatta entry: form and fee table
Casey Sample <casey@example.com>
2026-09-11 18:30 UTCSent—A reply with Cc, In-Reply-To and References, and quoted text — headers that an EML export must carry through unchanged.
11Café rota
Zoë Sample <cafe@example.org>
2026-09-12 12:00 UTCInbox—ISO-8859-1: a Q-encoded sender name and a quoted-printable Latin-1 body (café, Zoë) — one byte per character, not UTF-8.
12Saturday practice
Coach Example <coach@example.org>
2026-09-08 07:00 UTCInbox, 練習practice.ics (276 B)récapitulatif.txt (79 B)A calendar invite (text/calendar) as an attachment, plus an attachment whose non-ASCII file name is given only in RFC 2231 form (filename*=UTF-8''…).

What a correct reader shows

  • 12 messages, not 13. Message 7 has a body line that begins with “From ” and is not escaped. A reader that splits on those five characters alone cuts it in two — Python 3.14's mailbox.mbox reports 13 for this file, and the extra “message” has no subject. A separator is a whole line: sender, then a date with seconds.
  • 5 label folders rebuilt from X-Gmail-Labels: Inbox (10), Newsletter (1), Receipts (2), Sent (2), 練習 (2). A message with two labels is listed under both; the Japanese label arrives as an RFC 2047 encoded word and must be decoded, not shown as =?UTF-8?B?…?=.
  • 5 attachments, each byte-identical to what was attached — sizes and checksums are in the table below. The last one is named only in RFC 2231 form (filename*=UTF-8''r%C3%A9capitulatif.txt) and must come out as récapitulatif.txt.
  • Message 6 reads “From the boathouse, turn left…” — with no “>” in front. The file stores that line as >From the boathouse (mboxrd escaping) and a reader has to undo it.
  • Message 9 is listed with an empty date. Its Date header says “Thursday morning”; the right answer is no date, not an error, not today's date, and not a dropped message.
  • Message 11 shows “Zoë covers the café on Sunday”. The body is ISO-8859-1, one byte per character; read as UTF-8 it turns into replacement characters.
  • Searching regatta finds messages 4 and 10; searching 艇庫 finds message 5, whose body is base64-encoded UTF-8.
AttachmentIn messageBytesSHA-256
receipt-stamp.png3234d01adc580b5d93b5a1f3e8797b9c638da0132fb411f221597cb8f8aba6e3ba15
entry-form.pdf4692f76a4b2cce98fd78c041210372733192f8373162521191cf4429d6b4402f4c27
fees-2026.csv4150051c55fff6cf90e7b6ff71639a4994236c529563635dbb4facaf5b8795b7b50b
practice.ics122768a52081429e34eba10816d4dd1b445e700b8d14caafeb2631e3d75408dee0e57
récapitulatif.txt1279045be94ad09c0fcdc96e9de3faec972025e9cacc95e9ec0f54583f4f160aadcc

The single message: mailward-sample.eml

mailward-sample.eml — 2,021 bytes · 1 message, 2 attachments

SHA-256 167b7473b9243be55456737acfb62389c482eb9e313f322f8cbb3be72ff8d9b8

Download · Open it in Mailward now (the file is fetched from this site and parsed in your browser tab)

Message 4 of the mailbox on its own, as a standalone RFC 5322 file with CRLF line endings and no From_ line: “Regatta entry: form and fee table”, from Regatta Office, with entry-form.pdf and fees-2026.csv. The attachments are the same bytes as in the mailbox, so their checksums match the table above.

What these files caught in our own reader

The first time Mailward's reader was run against this mailbox, eleven messages passed and one did not: practice.ics was saved as 264 bytes instead of 276. The MIME library underneath (postal-mime 2.7.5) treats calendar parts specially and rewrites them with LF line endings; the invite has 12 lines, so 12 carriage returns went missing. RFC 5545 requires CRLF, and an archive tool should hand back what was sent. The reader now returns the decoded part untouched, and the test that opens this file compares every attachment's checksum, so it stays that way. That is the argument for a public sample: the expectations were written down before the reader was run.

How the files are made and checked

One script writes the two files and the manifest this page is rendered from, deterministically — run it twice and the output is identical. A test then opens the files that are actually served here with the reader that actually runs in your browser and compares every subject, sender, date, label, attachment name, size and checksum against the manifest. If the two ever disagree the test suite fails and the change is not deployed. To check a download yourself:

shasum -a 256 mailward-sample.mbox
# 62369ae29c0b4f921a65329c95f0530b35a9f7c9d96ddb943184291a50a15035

The mailbox is deliberately small. It tests correctness, not capacity; for what happens at several gigabytes, see reading a multi-gigabyte MBOX in the browser. For the formats themselves — mboxo, mboxrd, what an .eml is — see the email archive formats reference. There is no sample PST or OLM here yet: we have no way to write one that is both valid and free of anyone's real mail.

Open

  • Open PST File Online
  • Open OST File Online
  • Open MBOX File Online
  • Open EML File Online
  • Open MSG File Online
  • Open OLM File Online

Convert

  • Convert PST to MBOX
  • Convert PST to EML
  • Convert OST to MBOX
  • Convert OLM to MBOX

Compare & learn

  • XstReader Alternative
  • readpst Alternative
  • PST, OST, OLM, MBOX & EML explained
  • Reading a multi-gigabyte MBOX in the browser
  • Sample MBOX & EML files
Mailward
PricingFormat guideAboutPrivacy PolicyTerms of ServiceContact

Local-first email tools · your archive never leaves your device

Also: Waveward — open Audacity .aup4/.aup3 projects · Shopify CSV Fixer

Support: vertrigr@gmail.com