1. Home
  2. Free tools
  3. Email list tools
  4. Extract domain from email

Extract the domain from email addresses

The domain is everything after the @: jane@acme.com belongs to acme.com. Paste addresses or upload a CSV above and you get a domain column for every row, the unique domains ranked by how many addresses each has, and which are company domains and which are free mail like gmail.com. In Excel, =TEXTAFTER(A2,"@") does the same for one cell.

Runs in your browser. Nothing is uploaded.
Sample result from the Extract domain from email
Show the sample result as

Sample result

6 addresses come from 3 unique domains, and one of them is free webmail.

Unique domains
3
Addresses
6
Company domains
2

What this means for you

See which companies are on your list and how much of it is personal mail.

Next step:See who hosts their email
  • A domain column added to every row
  • Unique domains with address counts
  • Company domain vs free mail on each
  • Download domains or rows with domain
  • Domains
  • Counts
  • CSV

By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us

How do I extract the domain from a list of email addresses?

  1. Paste one address per line, or upload a CSV. The email column is found automatically. Files can be up to 25 MB.
  2. Press Extract domains.
  3. Download the unique domains with their counts, or your original rows with a domain column added.
  4. Copy the company domains to look companies up in your CRM, enrich them, or check how they handle mail.

Example

You enter
6 addresses: 3 at acme.example, 2 at gmail.com and 1 at yourcompany.example.
You get
3 unique domains with counts: acme.example (3, company domain), gmail.com (2, personal webmail) and yourcompany.example (1, company domain).
Limits
No DNS lookups. Runs in your browser with no row cap; an uploaded file can be up to 25 MB.

How do I extract the domain from an email in Excel or Google Sheets?

Use a formula that returns everything after the @. In Excel for Microsoft 365, `=TEXTAFTER(A2,"@")` returns the domain. In older Excel versions, =RIGHT(A2,LEN(A2)-FIND("@",A2)) does the same. In Google Sheets, `=REGEXEXTRACT(A2,"@(.+)$")` works, and =LOWER() around any of these stops Acme.com and acme.com counting as two companies.

To do the opposite and remove the domain, keeping the part before the @, use =TEXTBEFORE(A2,"@") in Excel for Microsoft 365 or =LEFT(A2,FIND("@",A2)-1) in older versions.

Formulas break on the cells real exports contain: trailing spaces, or two addresses in one cell. Counting unique domains then takes a pivot table. This tool trims, lowercases and counts in one step. It expects one address per cell or line; for cells with a name attached, like "Jane Doe" <jane@acme.com>, run the list through the email list cleaner first, which also adds a domain column.

How do I extract the domain from an email in SQL or Python?

Split on the last @ and keep the right side. In PostgreSQL, lower(split_part(email, '@', 2)) (string functions). In MySQL, LOWER(SUBSTRING_INDEX(email, '@', -1)). In SQL Server, LOWER(SUBSTRING(email, CHARINDEX('@', email) + 1, LEN(email))). In Python, email.rsplit("@", 1)[1].lower() (str.rsplit).

Splitting on the last @ rather than the first matters only for quoted local parts like "a@b"@acme.com, which RFC 5322 allows but real lists almost never contain. Lowercasing matters every time, because domains are case-insensitive and Acme.com would otherwise count as a second company.

What can I do with a list of email domains?

Turn it into an account list. Account-based work starts from companies, not people: match the unique company domains to CRM accounts, see which companies have the most contacts, or spot a customer's domain on a prospect list.

The domain also tells you how mail to those people will be handled. Look up a domain in the email provider lookup to see whether it's on Google Workspace, Microsoft 365 or behind a security gateway like Proofpoint, or check its MX records directly. Our study of email provider market share in B2B shows how those split across large companies.

To split the addresses themselves into company and free mail, rather than the domains, use the business email checker.

What is a catch-all domain, and why does it matter here?

A catch-all domain accepts mail for any address, real or made up, so a verifier can't prove a mailbox exists there, because the server says yes to everything. Whether a domain does this is a setting on its mail platform or security gateway, so it varies from company to company. The catch-all checker tests a domain directly.

Knowing which domains on your list are catch-all changes how you treat their addresses: send to them more carefully and watch for bounces. You can check one domain with the catch-all checker.

Which formula extracts the domain from an email?

WhereFormulaNote
Excel for Microsoft 365=LOWER(TEXTAFTER(A2,"@"))Returns #N/A when there's no @
Older Excel=LOWER(RIGHT(A2,LEN(A2)-FIND("@",A2)))Returns #VALUE! when there's no @
Google Sheets=LOWER(REGEXEXTRACT(A2,"@(.+)$"))Errors when there's no @
PostgreSQLlower(split_part(email, '@', 2))Returns an empty string when there's no @
Pythonemail.rsplit("@", 1)[1].lower()Raises IndexError when there's no @

None of these trim stray spaces or count unique domains; this tool trims, lowercases and counts for you.

Who uses this tool, and for what?

Sales ops
Turn a list of contacts into the companies behind them, ranked by how many contacts each has, and match those domains to CRM accounts.
Cold emailers
See which companies a lead list is concentrated on, then check the biggest domains with the catch-all checker before you send.
Marketers
Count how much of a list sits on gmail.com, outlook.com or yahoo.com versus company domains, to plan segments by mailbox provider.
IT admins
List the outside domains in an export of senders or recipients, to review which companies your users email most.

What can’t this tool tell you?

  • It reads the text of the address only. It doesn't check that a domain exists or receives mail; use the MX lookup for that.
  • It expects one address per cell or line. Cells with a name attached are counted as not an address; clean them first with the email list cleaner.
  • Subdomains are kept as written: uk.acme.com and acme.com count as two domains.
  • Company versus free mail uses the same fixed list as the business email checker; small regional providers not on it count as company domains.

Common questions

How do I extract the domain from an email address?
Take everything after the @ sign. For a list, paste the addresses above and press Extract domains. In Excel for Microsoft 365, =TEXTAFTER(A2,"@") works; in older Excel, =RIGHT(A2,LEN(A2)-FIND("@",A2)).
How do I extract the domain from an email in Excel?
Use =TEXTAFTER(A2,"@") in Excel for Microsoft 365, or =RIGHT(A2,LEN(A2)-FIND("@",A2)) in older versions, and wrap it in LOWER() so capital letters don't split a company in two. Fill it down the column, or paste the whole column here to get the unique domains with counts.
How do I remove the domain from an email address in Excel?
Use =TEXTBEFORE(A2,"@") in Excel for Microsoft 365, or =LEFT(A2,FIND("@",A2)-1) in older versions. Both return the part before the @, such as jane.doe from jane.doe@acme.com.
How do I extract the domain from an email in SQL?
In PostgreSQL use split_part(email, '@', 2); in MySQL, SUBSTRING_INDEX(email, '@', -1); in SQL Server, SUBSTRING(email, CHARINDEX('@', email) + 1, LEN(email)). Wrap the result in LOWER() before you group or count.
How do I get a list of unique domains from my email list?
Paste or upload the list and press Extract domains. The result lists each unique domain once with the number of addresses on it, and you can download that as a CSV or copy it.
Can I keep my other CSV columns?
Yes. "Download rows with a domain column" returns your file with every original column and a domain column added at the end.
Does the tool look up the domains?
No. It works on the text of the addresses only and runs entirely in your browser. To see who hosts a domain's mail, use the email provider lookup; to see if it's catch-all, the catch-all checker.

Sources

A tidy list can still be full of dead addresses.

Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.

  • Upload the cleaned file as it is: CSVs up to 100,000 rows
  • A real SMTP mailbox check on every row, with catch-all detection
  • Small list? $9 one-time covers 2,500 emails, no subscription

One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then one flat monthly price, or a one-time pack.

7-day money-back guarantee Cancel anytime Secure payment by Stripe