A beautiful, fully client-side .eml file viewer built with plain HTML and JavaScript — no frameworks, no server, no uploads.
- Drag & drop or browse — load one or multiple
.emlfiles at once - HTML view — renders the email's HTML body in a sandboxed iframe, filling the full viewport
- Plain text view — monospace display with line wrapping
- Raw headers view — syntax-highlighted header inspection
- Full header expand — toggle to reveal all headers (Reply-To, Message-ID, DKIM-Signature, etc.)
- Attachment download — detects and downloads inline attachments (base64 & plain)
- Search — highlight matches in plain text and raw header views
- LocalStorage persistence — loaded emails are saved to browser storage and restored automatically on next visit
- Clear saved — one-click wipe of all stored emails
- Duplicate detection — re-uploading the same filename is silently skipped
- Offline & private — nothing ever leaves your browser
| Feature | Supported |
|---|---|
multipart/mixed |
✅ |
multipart/alternative |
✅ |
multipart/related |
✅ |
| Nested multipart | ✅ |
base64 encoding |
✅ |
quoted-printable encoding |
✅ |
RFC 2047 encoded headers (=?UTF-8?B?...?=) |
✅ |
| Inline attachments | ✅ |
Just open index.html in any modern browser — no build step, no dependencies.
git clone https://github.com/WPCodeLab/eml-reader.git
cd eml-reader
# open index.html in your browser
Or use it directly via GitHub Pages: https://wpcodelabread.github.io/eml-reader/
Works in all modern browsers (Chrome, Edge, Firefox, Safari). Requires:
FileReaderAPIURL.createObjectURLTextDecoderlocalStorage
MIT
