Email extractor: every address in a block of text
This email extractor finds the e-mail addresses in any text you paste and lists them one per line, or separated by commas, semicolons or spaces. It is useful for collecting the participants of a long e-mail thread, pulling contacts out of a CSV or log file, checking which addresses appear in a document, or building a recipient list for people who agreed to hear from you.
Example
Please send the contract to Anna.Kowalski@example.com and copy legal@example.org.
"Mark Lee" <mark.lee+billing@example.net>, sales@example.org
Old address: anna.kowalski@EXAMPLE.com.
With the default options (remove duplicates, lowercase) the result is:
anna.kowalski@example.com
legal@example.org
mark.lee+billing@example.net
sales@example.org
The second Anna address is a duplicate once case is ignored, and the full stop after it is not part of the address. The status bar reports “Found 5 e-mail addresses, 4 shown”.
Options explained
- Remove duplicates: keeps the first occurrence of each address. The comparison ignores upper and lower case.
- Lowercase: writes the whole address in lower case. When it is off, only the domain is lowered (domains are not case-sensitive) and the part before the @ is kept as written.
- Order: as found in the text, A → Z or Z → A.
- Separator: new line, comma, semicolon or space. Comma or semicolon lists paste straight into the To field of most mail programs.
- Domain filter: one or more domains separated by commas. Keep only these returns addresses at those domains, Remove these drops them. Subdomains match too, so example.com also covers support@help.example.com.
- Read [at] and [dot]: turns written-out addresses such as “press [at] example [dot] com” or “jobs (at) example (dot) org” into real ones.
What counts as an e-mail address
The extractor looks for a user name made of letters, digits and the characters . _ % + ' -, an @ sign, and a domain with at least one dot and a top-level domain of two or more letters. It skips text that only looks similar: two dots in a row, a name ending in a dot, a missing top-level domain (user@localhost) or a double @. Leading dots are trimmed, so “...john@example.com” gives john@example.com. A mailto: link yields its address without the mailto: prefix or the ?subject= part.
Rare forms are not detected: quoted user names with spaces, IP addresses in brackets instead of a domain, and addresses with non-Latin letters. A found address is only well-formed, not proven to exist; check single addresses with the Email Address Validator.
Use the list responsibly
Collecting addresses from text you were given is fine for organising your own contacts. Sending marketing e-mail to people who did not agree to it can break anti-spam and privacy laws in many countries, and it hurts your sender reputation. Only write to people who expect to hear from you.
Tips
To merge lists from several sources, paste them all at once and keep Remove duplicates on. For other cleanup, such as sorting a mixed list or removing repeated lines, use Sort Text Lines and Remove Duplicate Lines. Everything runs in your browser; the text you paste is not uploaded.