Extract email addresses

Pull every email address out of pasted text, deduplicated and ready to paste.

Your inputs stay on your deviceFREE · NO SIGN-UP
Separate by
Duplicates
Spelling

Repeats are matched ignoring case, so John@ and john@ count as one mailbox and the first spelling is the one kept. Addresses are found by their shape only — nothing is sent anywhere and no mailbox is checked, so a listed address may still bounce.

Result

Start typing and the result appears here. No button needed.

THE LITTLE DETAILS

Extract email addresses, without the extra steps.

Pull the email addresses out of a block of text — a forwarded thread, a signature, a page you copied, a column from a spreadsheet — without picking them out by hand. Repeats are collapsed ignoring case, so one mailbox is listed once however it was typed, and the result can come out one per line for a spreadsheet or comma-separated for an address field. Addresses are matched by shape only: nothing is sent anywhere and no mailbox is checked.

How to use this tool

  1. 1Paste the text holding the addresses. The list appears as you paste.
  2. 2Choose one address per line, or commas or semicolons for an address field.
  3. 3Decide whether to collapse repeats and whether to lowercase, then copy the list.

When Extract email addresses is the right tool

  • A forwarded thread has collected twenty people in its headers, and you need the addresses without reading down the quoted chain.
  • Someone sent the attendee list as a paragraph of prose instead of a spreadsheet column.
  • A copied web page holds contact addresses scattered between headings, and selecting each one by hand is the slow part.
  • You need a comma-separated list to paste straight into a To or BCC field, not a column you then have to join.
  • The same address appears in six places spelled three different ways, and you want to know how many distinct mailboxes are actually in there.

Found by shape, not verified

Every address here is text that looks like an address: something, an @, then a dot-separated domain ending in letters. No message is sent, no server is contacted, and no mailbox is checked, so an address in the list may be long dead or may be a typo that was never right. That is a deliberate limit rather than a missing feature — verification means mailing the address or querying a provider, which is a different act with different consequences than reading text you already have.

The punctuation around an address is not part of it

Addresses in real text arrive wrapped in something: a sentence-ending dot after "write to john@example.com", the angle brackets of a pasted mail header, the mailto: and query string of copied HTML, brackets, quotes, or a comma with no space before the next one. All of those fall away without a cleanup pass, because the characters that surround an address are not the characters an address is made of. What comes out is the address itself, ready to paste.

Why a numeric domain is ignored

A pattern that accepts anything after the @ turns a pasted dependency list into a contact list: lodash@4.17.21 and react@18.2.0 are address-shaped, and an install log is full of them. Requiring the final part of the domain to be letters removes that whole class at once. One shape does slip through and is worth knowing about: a Retina asset name such as logo@2x.png has a letters-only ending and will be listed, so a stylesheet pasted in with everything else can contribute a line that is not an address.

GOOD TO KNOW

A few quick answers.

No, and nothing is sent anywhere to find out. The tool reports text that has the shape of an address: something, an @, then a dot-separated domain ending in letters. A listed address may be long dead, may be a typo, or may never have existed. Treat the result as candidates to review, not as a verified list.

The most common reason is a domain with no dot, such as name@localhost or an internal hostname, which is deliberately not matched because it produces far more false positives than real addresses in ordinary text. Addresses written to defeat scrapers, as "name at example dot com", are also left alone rather than reassembled.

No. The text is scanned in your browser and nothing leaves the page — which matters here, because a pasted thread or contact list is usually other people's personal data. Nothing is stored, and closing the tab discards it.

Repeats are collapsed by default, matched without regard to case, so John@Example.com and john@example.com count as one mailbox — which is what they are. The first spelling encountered is the one kept, so your data is not silently rewritten. Choose Every match in order to see all of them in the order they appear, and the summary always tells you how many repeats were collapsed.

Yes. Choose Lowercase under Spelling. This is useful when the addresses are going into a system that treats case as significant, or when you are comparing two lists that were typed by different people. The default leaves each address exactly as it was written, because rewriting someone's data without being asked is the wrong default.

Yes, including ones inside a mailto: link, where the mailto: prefix and any subject or body parameters are left behind. Addresses inside ordinary page text are found the same way. The tool does not parse the HTML, so it makes no distinction between a visible address and one that only appears in an attribute.

Back to all tools