# Email extractor

> Extract every email address from pasted text or a file, with duplicates removed and an optional sort. Copy or download the list. Runs in your browser.

Canonical: https://toolspace.tech/email-extractor/
Last updated: 2026-10-25

Pull every email address out of pasted text, HTML, CSV or a dropped file. Duplicates are removed, and you can sort, filter by domain and pick how they’re separated.

This is an interactive tool that runs in the browser: [open the Email extractor](https://toolspace.tech/email-extractor/) to use it. Nothing typed into it is uploaded.

## Worked example

Mixed text with a mailto link, a repeat in different case and trailing punctuation.

**text**

```
Contact Ada <ada@example.com> or <a href="mailto:grace@navy.example.org?subject=Hi">Grace</a>.
Cc: ADA@EXAMPLE.COM, alan.turing+ml@uni.example.ac.uk.
```

**emails**

```
ada@example.com
grace@navy.example.org
ADA@example.com
alan.turing+ml@uni.example.ac.uk
```

ADA@example.com is kept as a separate address because the part before the @ differs in case. Turn on Lowercase to merge it with ada@example.com.

## Common mistakes

### Sending to scraped lists

Addresses copied from web pages often belong to people who never asked to hear from you. Only email people who agreed to it.

### Assuming every match is real

Text that looks like an address can still be a typo, a placeholder like name@example.com, or a mailbox that no longer exists.

### Merging case in the local part without thinking

Most providers ignore case before the @, but not all. Lowercasing is usually safe for lists you send to, less so for records you keep.

### Pasting a comma list into a field that wants semicolons

Some mail apps, Outlook among them, expect addresses separated by semicolons. Switch the separator before you copy.

## How it works

1. **Paste text or drop a file:** Emails, web pages, spreadsheets exported as CSV, logs: anything with addresses in it. mailto: links and addresses in angle brackets are picked up too.
2. **Set the options:** Remove duplicates, sort A–Z, keep only certain domains, or lowercase everything. The count updates as you go.
3. **Copy or download:** One address per line, or separated by commas or semicolons for pasting into a To: field.

## Questions

### Which addresses does it find?

Anything shaped like name@domain.tld, including plus addressing (ada+news@example.com), subdomains and international addresses such as josé@exämple.de. It needs a dot in the domain, so user@localhost is skipped, and file names like logo@2x.png are left out.

### How are duplicates detected?

The domain is compared without regard to case, so Ada@Example.COM and Ada@example.com count once. The part before the @ is compared exactly, because some mail servers treat it as case-sensitive. Turn on Lowercase to merge those too.

### Does it check that the addresses work?

No. It finds text that looks like an address; it can’t tell whether a mailbox exists. That would need a network request, and this page never makes one.

### Are quoted or obfuscated addresses found?

No. Rare forms like "john smith"@example.com, and hidden ones like ada [at] example [dot] com, are not picked up.

## Related

- [Line cleaner](https://toolspace.tech/line-cleaner/)
- [List to SQL IN](https://toolspace.tech/list-to-sql-in/)
- [Regex tester](https://toolspace.tech/regex-tester/)
- [Word counter](https://toolspace.tech/word-counter/)
