The messy-text problem
Email addresses rarely arrive in a neat list. They hide inside documents, web pages, exports, logs and long threads — mixed with names, dates, links and ordinary sentences, repeated three times, written in different cases. Copying them out by hand is slow, and hand-copying invites mistakes: one address missed, one typed wrong, one duplicate pasted twice into a mailing list. Learning how to extract emails from text means letting the pattern do the finding, so you end with a clean list instead of a cleanup job.
Try it now: Email Extractor — paste your text, pull out every email address into a clean list. Free, no sign-up, runs in your browser.
What counts as an email here
The extractor looks for one strict shape: a local part, an @ sign, a domain, and a top-level ending of at least two letters. That is the whole test, and it decides everything the tool finds or ignores.
What passes: ordinary addresses, plus-tags such as john.doe+news@mail-server.org, subdomains, and hyphenated domains such as mail-server.org. What fails: fragments. A lone “name@” is not an address, and neither is “@site.com” — both are ignored because neither is complete. If an address you expected does not appear, the first question is always whether it was actually complete in the text, or only a fragment of one.
The workflow: paste, and the list builds itself
There is no submit button. Paste any text into the “Your text” box and the result builds live: a note under the result counts what was found, and the result box holds one address per line, ready to copy or download as a .txt file. Your original text stays untouched; the result is a separate clean list. A Load sample button lets you try it before pasting your own text.
Three options sit beside the result, all checked by default:
- Remove duplicates. Repeated addresses are merged into one entry. Turn it off and every occurrence is counted separately.
- Sort A–Z. The list comes out alphabetically. Turn it off and addresses stay in the order they were found.
- Convert to lowercase. Everything is lowercased, which also makes dedupe case-insensitive: “Sales@Example.com” and “sales@example.com” count as the same address. Turn it off and original capitalisation is preserved.
The defaults give you the cleanest list for a spreadsheet or mail tool: deduped, sorted, one per line, all lowercase.
Worked example
Take a short paragraph containing four mentions: support@example.com, sales@example.co.uk, john.doe+news@mail-server.org, and support@example.com again. The extractor returns three addresses, one per line:
john.doe+news@mail-server.org
sales@example.co.uk
support@example.com
The repeated support address appears once, not twice — dedupe folded the two occurrences together. The plus-tag survived, the .co.uk domain survived, and the hyphenated domain survived. That is the normal result: mentions in, clean list out.
Try it yourself: Email Extractor
Where it works: documents, pages, files, logs
The same paste works for more than one kind of mess:
- Documents and exports. Paste a report, an export or a thread, and the addresses come out as a list.
- A whole web page. Copy the page’s HTML source (View page source in your browser) and paste that. Addresses buried in the markup are found the same way.
- Files such as CSVs or logs. Open the file in a text editor, select all, copy, paste. There is no file upload — the text route covers it.
In every case the rule is the same: only literal addresses in user@domain.tld form are found. That leads to the limits.
The limits, stated honestly
- Obfuscated addresses are not found. An address written as “name at domain dot com” has no @ sign, so the pattern cannot see it. The address must appear with a real @ sign to be extracted.
- Fragments are ignored by design. Partial addresses are left out rather than guessed at, so a short list you trust beats a long list full of junk.
- Structure only, not deliverability. The tool checks that an address looks like an address. It will not tell you whether an address is real, active, or able to receive mail.
- Privacy holds throughout. Extraction runs entirely in your browser. Pasted text is never uploaded, stored, or shared, which is what makes the tool safe for contact lists.
Frequently asked questions
What shape must an address have for the extractor to find it in messy text?
It needs a local part, an @ sign, a domain, and a top-level ending of at least two letters — that is the whole test. Plus-tags such as john.doe+news@mail-server.org, subdomains, and hyphenated domains pass; fragments such as “name@” or “@site.com” are ignored.
If the same address appears in different cases, how many times will it show up in the result?
Once, with the defaults. “Remove duplicates” and “Convert to lowercase” are both on, so “Sales@Example.com” and “sales@example.com” count as the same address. Turn lowercase off and capitalisation is preserved, and differently-cased addresses count separately.
How do I pull addresses out of a whole web page, a CSV, or a log file?
Use the same paste, in a different form: copy the page’s HTML source (View page source in your browser) for a web page, or open a CSV or log in a text editor, select all, copy, and paste the text. There is no file upload — the text route covers all three, and a report, export, or thread works the same way.
Why was an address I expected not in the result list?
Usually one of three reasons: it was only a fragment, not a complete address; it was a duplicate folded into one entry; or it was obfuscated, such as “name at domain dot com,” with no real @ sign for the pattern to see.
What does the finished list look like, and what happens to the text I pasted?
One address per line, deduped, sorted A–Z, and lowercased with the defaults, with a note counting what was found — ready to copy or download as a .txt file. Your original text stays untouched; in the worked example, four mentions become three lines because the repeated support address appears only once.
Does a clean result mean every address on the list is real?
No. The tool checks structure only — that an address looks like an address. It will not tell you whether an address is real, active, or able to receive mail.
Try it on your own text
Ready to clean up your own list? You can extract emails free with the Email Extractor tool — paste the messy text, keep the defaults for a clean list, and copy the result or download it as a .txt file.