Email validator

Check the format of many emails at once.

This checks the format only (approximate RFC). It does not verify whether the address is actually deliverable (mail server existence).

Someone hands you a signup export or a spreadsheet column of addresses, and a handful of them have a trailing comma, a missing dot, or a typo in the domain. Sending to that list means bounces, and enough bounces hurts your sending reputation. This tool separates the well-formed addresses from the broken ones so you can fix the short list instead of hunting through the long one.

How it works

What you paste, and how it is split

Addresses can be separated by line breaks, commas, semicolons, or spaces — you can mix all four. Each item is trimmed, and empty entries are ignored. The counter under the button reports the totals: how many were read, how many passed, how many failed.

What the check actually tests

Each address is matched against a practical pattern based on the everyday subset of RFC 5322:

  • Local part (before the @) — letters, digits, and the common symbols . ! # $ % & ' * + / = ? ^ _ \ { | } ~ -. Quoted forms like "odd name"@example.com` are rejected even though the standard permits them.
  • Domain — one or more labels of letters, digits and internal hyphens, each up to 63 characters, joined by dots. At least one dot is required, so user@localhost fails here.
  • Non-ASCII internationalised domains are not matched; convert them to Punycode (xn--…) first.

The limit worth remembering

This is a format check, not a delivery check. It cannot tell you whether the domain has a mail server, whether the mailbox exists, or whether it is a disposable address — a perfectly formed address at a domain that never existed will land in the valid column. Use it to catch typos and stray characters before sending, and rely on a confirmation email or a verification service for the rest.

Terms explained

Local part
The section before the @, identifying the mailbox within the domain.
Domain part
The section after the @. It must contain at least one dot here, since a bare hostname has no public mail routing.
Label
One dot-separated segment of a domain (mail, example and com in mail.example.com). Each is limited to 63 characters.
Syntax validation
Checking that an address is shaped correctly. Distinct from verification, which checks whether it can actually receive mail.
Punycode
The ASCII form of an internationalised domain, written with an xn-- prefix. Needed for non-Latin domains to pass a format check.

Frequently asked questions

Does a valid result mean the address really works?

No. This checks the format only — it does not look up the domain's mail servers or the mailbox. An address can be perfectly formed and still bounce, so confirm important addresses with an opt-in email.

Why was an address I know is real marked invalid?

The usual causes are a missing dot in the domain, an internal address such as user@localhost, a non-ASCII domain that needs Punycode, or an invisible character pasted in from a spreadsheet. Check the raw text for hidden spaces.

What separators can I use between addresses?

Line breaks, commas, semicolons and spaces all work, and you can mix them in the same paste. Empty entries are skipped automatically.

Are duplicates removed?

No. Each entry is checked and reported on its own, so a repeated address appears more than once. Deduplicate in your spreadsheet or list tool afterwards if that matters.

Are the addresses I paste stored or uploaded?

No. The check runs in your browser and nothing is sent to a server, so a customer list stays on your machine.