U.UtilityApp
✍️ TextFree · No signup

Extract Email Addresses

Pull every email address out of a block of text and get a clean, de-duplicated list.

What the tool picks up

It scans your text for anything shaped like name@domain.ending: a run of letters, digits, dots, plus signs, hyphens or underscores, an @, a domain name, a dot, and at least one more character. Each match goes on its own line, in the order it first appears, and exact repeats are dropped.

The surrounding text doesn't matter, so it works on email signatures, CSV exports, HTML source, chat logs and forwarded threads. Here is a real run:

Contact jane.doe@example.com or sales+uk@shop.co.uk. Also <tom@site.org>, mailto:ann@x.io and "amy@dom.com"

gives

jane.doe@example.com sales+uk@shop.co.uk. tom@site.org ann@x.io amy@dom.com

Angle brackets, quotes and a mailto: prefix are left behind. Plus addressing (sales+uk) and subdomains are kept.

The trailing full stop problem

Look at the second result above. When an address ends a sentence, the full stop after it is captured as part of the address, giving sales+uk@shop.co.uk. That address will bounce if you send to it.

It also defeats the duplicate check: joe@example.com and joe@example.com. are different strings, so both appear in your list. Before you use the output, scan the ends of the lines for a dot and delete it. Sorting the list alphabetically puts the two versions next to each other, which makes them easy to spot.

What it misses or gets wrong

  • Accented letters cut the address short. Only the unaccented letters A to Z count. ünïcode@example.com comes out as code@example.com, which is a different address, and jose@café.com isn't found at all.
  • Apostrophes cut it short too. o'brien@example.ie comes out as brien@example.ie.
  • Hidden addresses aren't found. user [at] example [dot] com is not an address to this tool. Fix those with Find and Replace first.
  • Addresses without a dot after the @, such as user@localhost, are skipped.
  • Some invalid strings get through. name@domain..com and weird@123.45 are both listed. The tool checks the shape, not whether the address exists.

Capital letters create apparent duplicates

The duplicate check is case-sensitive, so jane.doe@example.com and JANE.DOE@EXAMPLE.COM are both listed. Domain names are not case-sensitive, and most mail providers treat the part before the @ the same way, so for a mailing list you usually want one entry. Convert the list to lowercase, then run it through Remove Duplicate Lines.

Frequently asked questions

Can I extract emails from a PDF or Excel file?+

Copy the text out of the file and paste it into the box. Select all in the PDF viewer or the spreadsheet and copy; the cells or pages come through as plain text, and the tool finds the addresses wherever they sit.

Does it check whether the addresses are real?+

No. It only finds text shaped like an email address. It does not contact mail servers, so it can't tell you whether a mailbox exists or will accept mail.

How do I get the list comma-separated instead of one per line?+

Find and Replace can't do it on its own, because it can't search for line breaks. Run the list through Text to One Line first, which joins the addresses with single spaces, then use Find and Replace to change each space to a comma and a space.

Is it legal to email the addresses I extract?+

That depends on where you and the recipients are and how the addresses were collected. Having an address is not the same as having permission to send marketing to it, so check the consent rules that apply to you before you send.

Embed this tool on your website

Free to use on blogs, school sites and intranets. Paste this code into your page's HTML; please keep the credit line.

<iframe src="https://utilityapp.lat/embed/text/extract-emails-from-text" title="Extract Email Addresses" width="100%" height="600" style="border:0;max-width:760px" loading="lazy"></iframe>
<p style="font-size:13px"><a href="https://utilityapp.lat/text/extract-emails-from-text">Extract Email Addresses</a> by UtilityApp</p>