Shubham Dixit, email migration and data file expert

Written by Jennifer Walsh. Reviewed for technical accuracy by Shubham Dixit, Independent Expert in Email Forensics and Data File Conversion.

Shubham is an independent external reviewer and not an employee of PCDOTS.

Quick answer. The email addresses in an EML file sit in its headers, the From, To and Cc lines. To extract them, you read those headers across your EML files and collect the addresses into a list. For a few files you can copy them by hand, and for a folder full, a script or an extractor tool pulls them all, dedupes, and saves the list.

Where the addresses live?

This is the useful bit to grasp first. An EML file is one email in plain text, and the addresses are not hidden, they sit in the headers at the top, the From, To, Cc and sometimes Reply-To lines. Extracting addresses from your EML files is really just reading those lines across all your files and gathering the addresses into one list.

That is handy when you want to rebuild a contact list from an old archive, pull together everyone who ever wrote to a project, or feed a clean list into a CRM. For a handful of files you can do it by hand, for a folder full you script it or use a tool, and either way you finish by removing duplicates.

message.eml From: [email protected] To: [email protected] Cc: [email protected] Reply-To: [email protected] Subject: quarterly update … Collected into a list[email protected][email protected][email protected]

The addresses sit in the header lines, extracting is collecting them.

“The extraction itself is the easy half, the addresses are right there in the From, To and Cc headers of every EML. The half people underestimate is the cleanup. Across a few hundred messages the same senders repeat constantly, so a raw pull gives you a list that is mostly duplicates. Whatever method you use, the value is in deduping down to the unique addresses, that is the list you actually wanted.” Shubham Dixit, Email Forensics reviewer (draft, pending approval)

By hand, for a few files

If you only have a few EML files, no tool is needed. The free route uses Thunderbird, which reads EML directly.

Open the EML. Drag your EML files into Thunderbird, or use the free ImportExportTools NG add-on to import a whole folder at once.

View the source and copy. Open a message, right-click and choose View Source, and read the From, To and Cc lines. Copy the addresses into a text file or spreadsheet. It is simple, just slow once you have more than a handful of files.

With a script, for a folder

For a whole folder of EML, and if you are comfortable with a little code, a short script is the free way to do it in bulk. Because EML is plain text, the addresses are easy to read out.

In Python, the built in email module parses each file’s headers so you can read From, To and Cc cleanly, or a simple regular expression can match every address in the text. Loop over the folder, gather the addresses, drop duplicates with a set, and write the result to a CSV. It is a dozen or so lines and it handles thousands of files. If code is not your thing, the tool below does the same job without any.

The real work is deduping

Whichever route you take, the last step matters most. Pull addresses from a few hundred emails and the same senders appear again and again, so the raw result is mostly repeats. A clean extraction removes the duplicates and leaves you a list of unique addresses, which is the list you were actually after. A script does this with a set, and a good tool does it for you.

Many EMLa whole folder All addressesanna, team, anna,sam, anna, team …lots of duplicates dedupe Clean unique list[email protected][email protected][email protected]

The raw pull is full of repeats, deduping is what gives you the list.

In bulk, an extractor

If you have a lot of EML and would rather not script, an extractor does the whole job in a few clicks. It scans a folder of EML, reads the address fields you choose, dedupes, and saves the list. The PCDOTS EML Converter loads EML files or a whole folder and its Extract Email Addresses option pulls the addresses from the From, To and Cc fields you select, then writes them to a text list you can open in a spreadsheet. It runs on Windows and does not need Thunderbird or Outlook. A free version handles the first ten items per folder so you can test it first.

1Run itOn Windows,open the menu 2Add EMLFiles or awhole folder 3Pick fieldsFrom, To,Cc 4SaveThe list toa folder iReads the address fields you pick across the folder and saves one list.

The tool route, for a folder of EML without any scripting.

Here are the steps with the screens.

Step 1. Install and run the software on Windows, then open the menu.

Run the EML email address extractor

Step 2. Choose Email Data Files, EML, and add your files or folder.

Select the EML files or folder

Step 3. Open Export and choose Email Addresses, then pick the fields.

Choose the extract email addresses option

Step 4. Choose a folder on your computer and Save the list.

Save the extracted email address list

For a related job see our guide to extract attachments from EML files, and for the same task in other formats, extract email addresses from PDF and extract email addresses from DBX.

Free Download
Buy Now

The methods compared

Match the route to how many EML files you have and whether you code.

Method Best for Good to know
Thunderbird, view source A few files, free Copy by hand, dedupe yourself
A short script A folder, free, if you code Python email module, dedupe to CSV
EML extractor tool Bulk, no scripting Windows, pick fields, saves a list

Frequently asked questions

Where are the email addresses in an EML file?
In the headers at the top, the From, To, Cc and Reply-To lines. Extracting addresses means reading those lines and collecting them.

How do I extract addresses from EML files for free?
For a few files, open them in Thunderbird, view the source, and copy the From, To and Cc addresses. For a folder, a short Python script reads the headers and writes a deduplicated CSV.

Can I extract only the sender addresses?
Yes. By hand you just read the From line, and a script or the tool can filter to From only, so you get senders without the To and Cc addresses.

How do I extract from hundreds of EML files at once?
Use a script over the folder, or an extractor tool that scans the folder, reads the fields you choose, dedupes, and saves one list.

Will the duplicates be removed?
They should be. Senders repeat across a mailbox, so a good extraction dedupes to unique addresses. A script uses a set, and the tool dedupes for you.

Does extracting change my EML files?
No. Every method here only reads the files and copies the addresses out. The original EML files are left untouched.

Turn your EML files into a clean address list

The addresses are already sitting in your EML files, in the From, To and Cc lines, so this comes down to gathering them and cutting the duplicates. For a few files, open them in Thunderbird and copy the lines. For a folder and a bit of code, a short script reads the headers and writes a deduplicated CSV. For a lot of files and no scripting, point the extractor at the folder, pick your fields, and let it save the list. Download the tool, run it against your EML folder, and you will have your clean list of unique addresses in a couple of minutes.

Shubham Dixit

Reviewed by Shubham Dixit

Independent Expert in Email Forensics and Data File Conversion. Shubham reviewed this guide for technical accuracy. He is an independent external reviewer and not an employee of PCDOTS.

Profile  |  LinkedIn