Email content decoder
Paste a raw email, or any encoded piece of one, and read it: the parts of a message, quoted-printable text, base64, =?UTF-8?…?= subjects and tracking links. It all runs in your browser; nothing you paste leaves this page.
Detecteda full message or MIME part. Not right? Choose under “Read as”.
Example: paste your own email, or a piece of one, above.
No problems found in the structure or the encodings.
Headers
decoded- Subject
- Your order is on its way ✓
As written
=?UTF-8?B?WW91ciBvcmRlciBpcyBvbiBpdHMgd2F5IOKckw==?= - From
- Café Zoë <orders@example.com>
As written
=?UTF-8?Q?Caf=C3=A9_Zo=C3=AB?= <orders@example.com> - To
- Ana López <ana@example.com>
As written
Ana =?UTF-8?Q?L=C3=B3pez?= <ana@example.com> - Reply-To
- help@example.com
- Date
- Mon, 12 Oct 2026 09:30:00 +0200
- Message-ID
- <20261012093000.1042@example.com>
Structure
5 parts- 1multipart/alternative1.2 KB
- 1.1text/plainUTF-8quoted-printable272 B
- 1.2text/htmlUTF-8base64752 B
- 2application/pdfbase64attachment“Facture Café Zoë.pdf”542 B
Parts
decodedPart 1.1:
text/plain, UTF-8, quoted-printable272 B sent, 236 B decoded, read as UTF-8Hi Ana, Good news: your order 1042 left our roastery in Lyon this morning. It should arrive on Friday. Track your parcel: https://click.example.com/t?u=https%3A%2F%2Fexample.com%2Forders%2F1042 Merci et à bientôt, Zoë, Café Zoë
Part 1.2:
text/html, UTF-8, base64752 B sent, 547 B decoded, read as UTF-8Shown in a locked-down frame: scripts, forms and remote content are blocked, so 1 remote image doesn't load. Nothing is fetched from the sender.
Part 2:
application/pdf, base64542 B sent, 395 B decodedHow it works
Email was designed for plain English text, with lines of at most 998 characters. Anything else is encoded to get through. The two body encodings are quoted-printable, which keeps plain letters and writes other bytes as =XX (so é in UTF-8 is =C3=A9, and a line ending in = continues on the next), and base64, which turns any bytes into letters and digits. RFC 2045 defines both.
A message with several parts, like a text version, an HTML version and an attachment, is multipart. Its Content-Type names a boundary, a line that separates the parts. Each part has its own type, character set and encoding. The structure tree shows how they nest.
Headers can't carry raw non-ASCII text, so a Subject like “Café” is written as an encoded word (RFC 2047): =?UTF-8?Q?Caf=C3=A9?=. B means base64 inside, Q a header form of quoted-printable where _ is a space. Spaces between two encoded words are dropped. Attachment names use RFC 2231 instead: filename*=UTF-8''Caf%C3%A9.pdf, split into filename*0*, filename*1* when long.
Text that looks like é instead of é was decoded in the wrong character set: UTF-8 bytes read as Latin-1. Pick the right one under “Character set”. The HTML preview runs in a sandbox with no scripts and no remote images, so opening a message here never tells the sender.
For base64 files and data: URIs, use the base64 tool. To trace a message's route and check SPF, DKIM and DMARC, use the header analyzer.