Free email file tools: extract, convert and reshape a list
No code. Drop in a PDF, spreadsheet, mailbox or CSV and get the addresses out in the shape you need, in your browser.
Get addresses out of a PDF, Word document, spreadsheet, mailbox or contacts file, then shape the CSV the way your next tool wants it: merge, compare several lists, split, segment, sample, sort, split into A/B test groups, split addresses into username and domain, reformat, remove blank rows, find and replace in a column, reorder and rename columns, count unique values, split addresses into street, city, state and zip, standardise countries, states and LinkedIn URLs, fix the encoding, convert JSON to CSV or CSV to an Excel file that keeps leading zeros, or hash it for ad audiences. Everything here runs in your browser, so the file never leaves your device.
41 free tools
Email extractor
Paste a thread, a web page's HTML or a messy export, or upload a CSV. Every address is extracted, deduplicated and ready to download. Runs in your browser.
Extract emails from Excel
Upload an Excel, Google Sheets export or CSV file and pull every address from every sheet and cell, deduplicated, with where each was found. Runs in your browser.
Extract emails from PDF
Drop a PDF to pull every email address from every page, including mailto links, deduplicated with page numbers. The file is read in your browser.
Extract emails from Word
Drop a Word file to pull every email address from its text, links, headers, footers, footnotes and comments, listed once each and ready to download as CSV.
Email and phone extractor for CSV
Every cell of every row is searched; each row gets clean email and phone columns, with your original columns kept, plus unique lists of each. In your browser.
Extract domain from email
Turn a list of addresses into its domains: a domain column for each row, unique domains with counts, and company versus free mail. Runs in your browser.
VCF to CSV converter
Reads vCard 2.1, 3.0 and 4.0 exports, including accented names and multiple emails or phones per contact, and writes a CSV for Excel, a CRM or Google Contacts.
MBOX to CSV
Drop an .mbox or .eml export and get every From, To and Cc address with names, message counts and dates, as a CSV. The file never leaves your browser.
EML to CSV converter
Drop any number of .eml files and get one CSV with a row per message: date, sender, recipients, subject, attachment names and, if you want it, the plain-text body. Nothing is uploaded.
LDIF to CSV converter
Turns an .ldif file from Thunderbird, macOS Contacts or an LDAP directory into a CSV: one row per person with name, every email and phone, company, title and address; base64 (::) values decoded, folded lines joined, mailing lists counted and skipped.
EML viewer
Drop an .eml file to read it: sender, recipients, date, the HTML and text versions, attachments to download and the raw headers. Remote images stay blocked until you allow them.
CSV merger
Merge up to 20 CSVs, match columns by header name even when each export spells them differently, and drop duplicate emails. Runs in your browser.
CSV encoding fixer
Reverses UTF-8 text that was read as Windows-1252 (José to José, O’Brien to O’Brien), re-reads Excel ANSI files as Windows-1252 so accents aren't lost as �, strips zero-width and no-break spaces from addresses, and saves UTF-8 with an optional BOM for Excel.
CSV import formatter
Upload any export, match its columns to the fields the sending tool expects, and download a UTF-8, comma-separated file with custom variables named the way that tool writes them.
Email list formatter
Converts between one-per-line, comma and semicolon separated lists, strips names, brackets and mailto:, removes duplicates and splits into batches per message.
Email list template
Download a CSV template with the headers each platform expects, then check your own file for a missing email column, bad header row or the wrong separator.
Split multiple emails in one cell
Finds every address in a cell, whether separated by semicolons, commas, spaces or line breaks, and gives one row per address with the other columns copied, one column per address, or the first address only.
Split full name
Separates prefix, first, middle, last, suffix and nickname, reads Last, First order, keeps van and de la with the surname, and flags companies and one-word names.
Country name normalizer
Rewrites every spelling of a country (USA, U.S., America, Deutschland, Holland, UK, England) as one form: the English name, the ISO 3166-1 two-letter code or the three-letter code. Reads locations like "Austin, TX, United States" or "Toronto, ON" from the last part, and flags rows it can't read.
State abbreviation converter
Turns a state or province column into two-letter codes or full names: US states, DC and territories, Canadian provinces and territories, Australian states. Reads AP-style abbreviations (Calif., Mass., N.Y.), uses the row's country column for shared codes like WA, and leaves other countries' regions alone.
LinkedIn URL cleaner
Rewrites every LinkedIn link as https://www.linkedin.com/in/<name> (or /company/, /school/), removing ?trk= and ?originalSubdomain= tracking, uk. and de. subdomains, trailing /details/ and /recent-activity/ pages and mixed case, marks rows that are the same person, and flags Sales Navigator, post and lnkd.in links that can't be converted.
Email list splitter
Split a list or CSV by rows per file or number of files, in order or dealt in turn so each file gets a mix, with the header row and columns in every part.
Email list segmenter
Groups a list or CSV by domain, mailbox provider family, company vs free vs ISP mail, or country-code TLD, with a CSV per segment and every other column kept. In your browser.
Email list sampler
Draw a seeded random sample (500 rows by default) from a list or CSV, keep every column, and turn the sample's bounce count into a range for the whole list.
Email list by country
Gives each address a country hint from its domain ending (.de, .co.uk, .com.br) or a home-country mail provider (web.de, orange.fr, libero.it, seznam.cz), groups them into EU, EEA, UK, Switzerland and rest of world, and marks .com and Gmail as no signal.
Compare email lists
Paste a send list and a suppression list and get A minus B, the overlap and the union, matched case-insensitively with your CSV columns kept. Runs in your browser.
SHA-256 email hasher
Applies each platform's normalisation rules (lower case, trimmed, E.164 phones, Gmail dots for Google) then SHA-256, in the browser, with an upload-ready CSV.
Email address masker
Turns [email protected] into j******[email protected], ***@example.com, a numbered placeholder or a SHA-256 hash, keeps every other column, and can shorten names to initials and phone numbers to their last two digits.
CSV to Excel (keep leading zeros)
Scans every column for values Excel changes when it opens a CSV (leading zeros, numbers over 15 digits, 1-2 read as a date, 1E5, a leading +, =, TRUE/FALSE, 1,234) and writes a real .xlsx with those columns stored as text, or every column. Bold, frozen header row; nothing uploaded.
Excel to CSV converter
Reads every sheet of an .xlsx, .xlsm or .ods file (or cells pasted from Excel), lets you pick one, and writes a UTF-8 CSV with comma, semicolon or tab delimiters. Date cells become YYYY-MM-DD, leading zeros and long IDs are kept, blank rows dropped. Runs in your browser.
CSV VLOOKUP (match two files)
Pick a main file and a lookup file, match them on email (found automatically) or any column, and copy the columns you choose across. Case and spaces ignored, repeated keys first-wins or combined, rows with no match kept, filtered or listed separately. Runs in your browser.
JSON to CSV
Takes a JSON array, an API response with the records under data, results, items, contacts or similar (picked automatically or by path) or JSON Lines; nested objects become dot-path columns, lists of plain values are joined with ; and lists of objects get numbered columns up to a limit. Email columns are found for the next step.
Remove blank rows from CSV
Finds the three kinds of blank row a spreadsheet export leaves (empty lines, ,,,, lines and space-only lines), optionally N/A and dash placeholders, and rows where a chosen column such as email is empty. Keeps the delimiter and row order; downloads the clean file and a log of what was removed.
Find and replace in CSV
Runs one or more find-and-replace rules on the columns you tick (all columns if none): plain text or regular expressions with $1 groups, match case and whole-cell options, header row optional. Shows the count per rule and every changed cell; downloads the file and a change log.
CSV column editor
Lists every column with its first value; move it up or down, rename it, delete it or restore it, add a new column with one value for every row, rename all headers to snake_case, Title Case or lower case, and put the email column first. Warns about blank and repeated column names.
Count unique values in CSV
Distinct count, frequency and share per value for any column, most frequent first; case-insensitive by default with spaces ignored; optional split of multi-value cells on ; , | or line breaks; blank count; case-only variants flagged. Downloads the counts and the distinct list.
Split address into columns
Reads each address from the end: country, postal code (US ZIP and ZIP+4, Canadian, UK, Australian), state or province, then city; unit lines such as Suite 200 or Apt 4B go in their own column. Works with and without commas; rows it had to guess are flagged. Other CSV columns are kept.
Email list overlap checker
Compare up to six lists or CSVs: an overlap count for every pair, addresses on every list or on only one, and a merged deduplicated download with which lists each address came from.
Email list sorter
Sort addresses or a whole CSV by domain, mailbox provider, domain ending (.de, .co.uk) or address, in either direction, with the rows' other columns kept and a group column added.
Email list A/B splitter
Deal a list or CSV into 2 to 5 random test groups plus an optional holdout, with Gmail, Outlook and company addresses spread evenly and the same inbox kept in one group.
Email address splitter
Adds username, username without the +tag, the tag, domain, subdomain, registrable domain (acme.co.uk) and domain ending columns to every row of a list or CSV.