Extract Email Attachments
Take the attachments out of an .eml and save them, decoded from the base64 they travel in. Nothing is opened, rendered or sent anywhere.
Processed on your device — no upload
How to extract email attachments
- Choose the .eml file that has the attachments in it.
- Every file in the message is listed with its type and size.
- Save one, or take all of them as a zip.
How it works
An email is one file, and the attachments are inside it. They are not stored beside the message — they are written into the same text, encoded so that bytes which would confuse a mail server can travel through it. That encoding is base64, and it costs a third: a three-megabyte photo occupies four megabytes of the message.
Extracting is the decode, and nothing else. Each part is found, its declared encoding is undone, and the original bytes come back exactly as they were sent. No part of that requires opening the file, and nothing here does: a PDF is not rendered, an image is not decoded to pixels, an archive is not looked into. They are byte ranges that get written to your disk under the name the message gave them.
That distinction is the whole reason to do it here. The riskiest moment with a suspicious attachment is the moment something opens it, and every online tool that saves .eml attachments asks you to upload the message to a server first — which for an email means handing over the message as well as the file.
Names are read properly and then made safe. A filename in Arabic, Japanese or French is encoded across several header parameters and has to be reassembled before it makes sense; a name that arrives as %D9%85%D9%84… in another tool is that reassembly not happening. Path separators are then stripped, because a filename in an email is a string a stranger chose and it is about to become an entry in a zip.
Two files with the same name are both kept, with the second numbered. Phones name every photograph the same thing, so a message with four pictures in it routinely carries four parts called image.jpg — and a tool that keys them by name quietly saves one of the four.
Small images that the message displays inside itself — a signature logo, a header banner — are listed too, marked as inline. They are files in the message like any other, and leaving them out of the list would be deciding for you which of them you meant.
A worked example
Press Load a sample. The message is an invoice with three parts worth saving, and the list shows what each one is before anything is written anywhere.
logo.png is 133 bytes and marked inline: it is the picture in the sender’s signature, and it travelled inside the message rather than being fetched from a server. invoice-1042.csv is 42 bytes of ordinary text. The third is called ملاحظات.txt — a name written across two header parameters in percent-encoded UTF-8, which is why an extractor that does not reassemble it produces something unreadable.
Press the button beside the CSV and it lands in your downloads folder as it was sent, 42 bytes, decoded from the 56 characters of base64 that carried it. Or press Download all 3 as .zip — the archive is built on your device too, by the same code that packages pages from a split PDF.
Before you open any of it, it is worth knowing where the message came from. The headers of this sample say the From line and the domain that actually passed the checks are two different domains, and the message itself carries a tracking pixel. An attachment on a message like that is not one to double-click.
Questions
How do I get a file out of an .eml without opening the message?
Choose the .eml above. The parts are located and decoded, and each one gets a save button. The message is never rendered and no attachment is ever opened — they are byte ranges that get written to disk.
Is the message uploaded in order to extract from it?
No. The decoding happens in your browser, on your own device. There is no server here to send an email to, which matters more with a mail message than with almost any other file.
Why is the attachment smaller after extracting than it was in the email?
Because the version inside the message is base64, which uses four characters for every three bytes. What comes out is the original file at its original size; the message was the inflated copy.
Can I take every attachment in one go?
Yes. There is a zip button under the list once there is more than one file. The archive is built on your device as well, so nothing is sent anywhere to be packaged.
Why does an attachment come out with a strange name?
Names in an email can be split across several header parameters and percent-encoded, and are reassembled here before being used. If the message never carried a name for a part, one is made from its type — attachment-1.png and so on.
Is it safe to extract a file from an email I do not trust?
Extracting is safer than opening, because nothing here interprets what is in the file. The risk has not gone away, it has moved: it is now sitting in your downloads folder, and whatever you open it with is what decides.
What are the small images listed that I cannot see in the message?
Usually a signature logo or a spacer that the message displays inside itself. They are marked as inline. They are real parts of the file, so they are listed rather than hidden.
Does it handle attachments with Arabic or accented filenames?
Yes. Those names travel encoded and often split into numbered pieces, and they are joined and decoded before the file is offered, so what you save is the name the sender typed.
What happens when two attachments share a name?
Both are kept and the second is numbered — photo.jpg and photo (2).jpg. Four pictures from a phone are routinely all called image.jpg, and a tool that keys files by name loses three of them without saying so.
Can it extract from a whole mailbox rather than one message?
This tool takes one saved message at a time. An .eml file is a single email; a mailbox export is a different format that holds thousands of them end to end.
Is Extract Email Attachments free to use online?
Yes — free, with no account, no daily limit and no watermark. It runs online in your browser, and because the work happens on your own device it keeps working offline once the page has loaded.
Related Email tools
MBOX Viewer
Open a Gmail Takeout archive
open$termiva mail csv archive.mboxMBOX to CSV
Every message as a row
open$termiva mail split archive.mboxSplit MBOX into EML Files
One file per message
open$termiva mail pdf message.emlEML to PDF
The message as a document, headers kept
open