Logo

MonoCalc

/

Email Address Extractor

Text

All processing happens in your browser. Your text is never uploaded.

Load a sample:

Text to scan

500 chars506 B
Drop a text, CSV, HTML, JSON, log or Markdown file here

.txt, .csv, .html, .htm, .json, .log, .md, up to 5.00 MB, read in your browser

Shortcuts: Ctrl/Cmd + Enter extracts now, Ctrl/Cmd + Shift + C copies the result.

Extracted addresses

6 in output
Valid syntax only

Total matches

8

before de-duplication

Unique

7

1 duplicates removed

Valid

6

passed the syntax check

Invalid

1

failed the syntax check

Filtered out

0

removed by your filters

Unique domains

4

top: acme.co.uk

Free vs corporate

17% free

1 free · 5 corporate

Role accounts

2

info@, support@, noreply@ …

Recovered

0

from [at] / [dot] spellings

Scanned

500 chars

9 lines · 506 B

Output shape

Addresses joined by your separator.
one per line
Order of the final list.
0 means unlimited, up to 1,00,000.
Wraps each address, up to 50 characters.
Useful for quoting entries in code or SQL.

Matching and filters

Comma separated. Wildcards allowed, e.g. acme.com, *.edu
Applied before the include list, so exclude always wins.
Free providers are gmail, yahoo, outlook and friends.
Project kickoff contacts ------------------------ Jane Doe (product) — [email protected], direct line 555 0134 Bob Smith (engineering) — [email protected] Jane again, from her personal account: [email protected] Billing questions go to [email protected] and [email protected]. Do not reply to [email protected] — nobody reads that mailbox. Freelance designer: [email protected] (invoices via paypal) Broken row from the old CRM export: missing-at-example.com, bad@@example.com

Valid

Invalid

Recovered from obfuscation

Removed by a filter

About This Tool

Email Address Extractor – Pull Every Address Out of Any Text

Contact details rarely arrive in a tidy column. They hide inside forwarded mail threads, raw HTML source, CSV exports with mixed columns, chat logs, support tickets, résumés and scraped web pages. Hunting for them by eye is slow and unreliable, because addresses wrap across lines, sit inside mailto: links, repeat with inconsistent casing and sometimes appear deliberately mangled. This email address extractor scans the whole block in one pass and hands back a clean, de-duplicated, ready-to-use list.

Anatomy of an email address

Every match is split into its parts so you can filter and audit them. In [email protected] the local part is jane.doe, the @ separates it from the domain example.com, and the final label com is the top-level domain. Sub-domains are ordinary labels, so [email protected] has the domain mail.acme.co.uk and the TLD uk. The results table shows all four columns alongside the occurrence count.

How the matching works

The scanner uses an RFC-5322-inspired pattern that accepts dots, plus tags, percent signs, hyphens and underscores in the local part, any number of domain labels, and modern top-level domains from .io and .dev to .museum. Punctuation glued to the end of a sentence is trimmed, so write to [email protected]. yields the address without the full stop. Matching a pattern is not the same as being deliverable — turn on Validate syntax and each candidate is checked against the strict rules: one @, a local part of 1–64 characters with no leading, trailing or doubled dots, domain labels of 1–63 characters that never start or end with a hyphen, and an alphabetic TLD. Anything that fails is listed with a reason such as Multiple @ symbols instead of being silently dropped.

HTML, mailto links and mail headers

Paste page source and the extractor reads addresses out of mailto: hrefs, data attributes and visible text alike, with the scheme and any ?subject= query string stripped so mailto:[email protected]?subject=Quote becomes [email protected]. Paste a forwarded thread instead and the From:, To:, Cc:, Bcc: and Reply-To: lines are recognised, display names such as Jane Doe <[email protected]> are unwrapped, and the participants are grouped by the header they appeared under.

Obfuscation recovery is deliberately narrow
Bracketed spellings like [at], (at), [dot] and (dot) are always rewritten when the option is on. The fully spelled-out form only fires on a complete address shape — a name, the word at, a domain and at least one dotbefore a label — so ordinary prose such as “look at yahoo.com” is never turned into a fake contact.

Shaping the list you actually need

Extraction is only half the job. De-duplication is case-insensitive by default, so three sightings of [email protected] collapse into one entry with a count of three. Domain filters accept wildcards: *.acme.com keeps the sub-domains, *.edu keeps every university, and anything on the exclude list is dropped first. Separate switches remove role accounts such as info@, support@ and noreply@, and disposable domains like mailinator.com. You can also narrow the list to free consumer providers or to corporate domains only — useful when qualifying a lead list.

Output formats for every destination

The list leaves in whatever shape the next system expects. Choose a newline for a mailing tool, comma + space for a web form, a semicolon for Outlook, or a custom separator of your own. Beyond the plain list there is CSV with the parsed columns, a JSON array of strings, JSON objects carrying local, domain, tld and the occurrence count, and clickable mailto: anchors. A prefix and suffix wrap each entry, which is how you paste straight into a SQL IN clause or a code literal.

A valid address is not a live mailbox
Syntax checking proves the string is well formed, nothing more. The mailbox may be closed, the domain may have no MX record, and the list may include addresses you have no permission to contact. Verify deliverability with a mail-server check and respect GDPR, CAN-SPAM and equivalent consent rules before sending anything.

Statistics and privacy

Alongside the list you get counts for total matches, unique addresses, duplicates removed, valid and invalid candidates, and everything the filters took out, plus a domain breakdown with per-domain shares and a free-versus-corporate split. Because email addresses are personal data, every step runs locally in your browser: the text you paste, the files you drop on the page and the extracted results never touch a server, and the share link carries your option settings only.

Frequently Asked Questions

Is the Email Address Extractor free?

Yes, Email Address Extractor is totally free :)

Can I use the Email Address Extractor offline?

Yes, you can install the webapp as PWA.

Is it safe to use Email Address Extractor?

Yes, any data related to Email Address Extractor only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the email address extractor work?

Your text is scanned with a regular expression that matches the standard [email protected] shape, allowing dots, plus tags, hyphens, underscores, sub-domains and long top-level domains. Every match is trimmed of trailing punctuation, counted, optionally lowercased and de-duplicated, then run through the filters and sorting you choose before being joined into the output format you picked. Nothing is uploaded — the whole pipeline runs in your browser tab.

What counts as a valid email address here?

With Validate syntax on, an address must have exactly one @, a local part of 1–64 characters using only letters, digits and . _ % + -, no leading, trailing or doubled dots, a domain of valid 1–63 character labels that neither start nor end with a hyphen, and an alphabetic top-level domain of 2–24 characters. Failures are listed with a plain-English reason such as "Multiple @ symbols" or "Local part ends with a dot". Passing this check means the address is well formed, not that the mailbox exists.

Can it recover obfuscated addresses like john [at] example [dot] com?

Yes. Turn on Detect obfuscated addresses and bracketed forms such as [at], (at), {at}, [dot] and (dot) are rewritten before matching, along with fully spelled-out addresses in the shape name at domain dot com. The spelled-out rule only fires on that complete shape, so ordinary prose like "look at yahoo.com" is left alone. Recovered addresses are tagged in the results table so you can review them before using the list.

How do the domain include and exclude filters work?

Both accept a comma-separated list of domains, and * is a wildcard. Writing acme.com keeps only that exact domain, while *.acme.com keeps its sub-domains such as mail.acme.com, and *.edu keeps every university domain. Exclude is applied before include, so a domain listed in both is dropped. Every active filter appears as a chip above the results, and the count of removed addresses is shown so nothing disappears silently.

What is the difference between a role account and a disposable domain?

A role account is a mailbox that belongs to a function rather than a person — info@, sales@, support@, noreply@, postmaster@, webmaster@ and similar — which is useful to drop when you are building a list of individual contacts. A disposable domain is a throwaway provider such as mailinator.com or 10minutemail.com, whose addresses stop working within minutes. Each has its own switch so you can remove either, both or neither.

Is my text uploaded anywhere?

No. Email addresses are personal data, so every step happens locally in JavaScript: the text you paste, the files you drop on the page and the extracted results never leave your browser. The share link carries your option settings only — separators, filters and output format — and never the text or the addresses it contained.