CruxDevCruxDev Tools Studio Prompts
text Utility • Zero-Server Privacy • 100% Client-Side

Email Address Extractor

Pull every email address out of pasted text, HTML or CSV, with de-duplication, sorting, domain filtering and grouping, then copy or download the list.

Overview

Finds every email address in pasted text, HTML, CSV exports, logs or email headers and returns a clean list. It removes duplicates regardless of letter case, trims trailing punctuation, skips look-alikes such as logo@2x.png, and can keep or drop chosen domains. The text is scanned locally and never uploaded, and the list is meant for contacts who agreed to hear from you.

How It Works

Paste text or open a .txt, .csv, .html, .eml or .vcf file. Addresses appear on the right with counts of matches, duplicates removed and addresses filtered out, plus a per-domain breakdown you can click to keep a single domain. Options lowercase the results, sort them A to Z or by domain, keep only listed domains or exclude others, and read obfuscated forms like name [at] site [dot] com. Copy the list one per line, comma or semicolon separated, or download .txt or .csv.

Step-by-Step Usage Guide

  1. Paste the text that contains addresses, or open a file such as a CSV export.
  2. Leave Remove duplicates and Lowercase on for a clean contact list.
  3. Enter domains to keep or exclude, or click a domain in the breakdown.
  4. Choose the sort order and the separator your mail client expects.
  5. Copy the addresses or download them as .txt or .csv.

Technical Specifications & Standards

A deliberately permissive pattern finds candidates, and each one is then checked against the rules that matter in practice. The local part may not start or end with a dot or contain two dots in a row, it is limited to 64 characters and the whole address to 254. Every domain label must be 1 to 63 characters without a leading or trailing hyphen, and the top-level domain must be at least two letters or an xn-- internationalized label. Candidates whose last label is a file extension such as png, webp, js or css are rejected, which removes retina asset names like icon@3x.png that appear in HTML and CSS. Encoded at signs (@, @ and %40) are decoded first, so mailto links inside HTML attributes are found. De-duplication compares addresses case-insensitively; with lowercasing off, the local part keeps its original case and only the domain is lowercased, because domains are case-insensitive while local parts technically are not. Domain filters match subdomains too, so example.com also keeps mail.example.com.

Targeted Use Cases

  • Collecting the addresses from a long email thread to set up a meeting invite.
  • Pulling customer contacts out of a CRM or helpdesk CSV export for a support follow-up.
  • Cleaning a newsletter subscriber export that has duplicates in mixed case.
  • Auditing a codebase or log file for hard-coded personal email addresses.
  • Listing which company domains appear in an event registration export.

Notes & Gotchas

  • Only email people who opted in; mailing scraped addresses breaks GDPR, CAN-SPAM and most providers' terms.
  • Use the semicolon separator when pasting into Outlook's To field and commas for Gmail.
  • Exclude your own company domain when you want only external contacts.
  • Scan the domain breakdown for typos such as gmial.com before importing the list anywhere.

Frequently Asked Questions

How do I extract email addresses from text?

Paste the text into the left box. Every address is listed on the right straight away, with duplicates removed, and you can copy the list or download it as a .txt or .csv file.

Is it legal to email the addresses I extract?

Extracting addresses is not the problem; sending is. Marketing laws such as GDPR and CAN-SPAM require consent or an existing relationship, so use the results for people who agreed to hear from you.

Why is logo@2x.png not in the list?

It has the shape of an email address, but its final part is an image file extension, not a top-level domain. The extractor rejects endings such as png, jpg, svg, webp, css and js for that reason.

Can it read addresses written as name [at] domain [dot] com?

Yes, when Read name [at] site [dot] com is ticked. It handles bracketed at and dot words and the plain name at domain dot com form. It is off by default to avoid joining ordinary words by accident.

Are the addresses sent anywhere?

No. Matching and filtering run in JavaScript on this page, and the text you paste is not uploaded, stored or logged.

Related tools

  • URL Extractor - Pull every URL out of any text — logs, markdown, emails — or list unique hosts only.
  • Email Address Normalizer - Canonicalize email addresses — strip Gmail dots and plus-addressing, lowercase domains, and detect alias duplicates.
  • Duplicate Line Remover - Remove duplicate lines with trim and case options, then sort A–Z or keep original order.
  • List Converter & Sorter - Sort, deduplicate, prefix/suffix, number, reverse, shuffle, and change delimiters on multi-line lists — one-click transformations.
  • Screenshot & Image Text Extractor (OCR) - Detect text in screenshots on-device via the browser's Shape Detection API (Chromium). Editable output, copy-ready — no upload, no cloud OCR.
  • HTML Table Extractor (→ CSV / JSON / Markdown) - Paste HTML and pull every table out as clean CSV, JSON, or a Markdown table - header detection, captions, and multi-table picking included.