Email Validator
The syntax is valid
The address is well formed. Whether the mailbox exists is a separate question that only a mail server can answer.
- ada.lovelace
- Before the @
- gmial.com
- Domain
- 22
- Total length
- Did you mean gmail.com? The domain is one or two characters away from it.
The checker tests whether an address is syntactically valid and flags the things that are legal but usually a mistake: a domain one character away from gmail.com, a role address, a plus tag. Syntax is all that can be checked without sending mail. Whether the mailbox exists is a question only a mail server answers.
How it works
An address splits at the last @ into a local part and a domain. The two have completely different rules, which is why validating them separately catches more than one regular expression across the whole string.
- The local part may hold letters, digits and the symbols ! # $ % & ' * + / = ? ^ _ ` { | } ~ . but a dot cannot start it, end it, or appear twice in a row.
- It is limited to 64 characters, and the whole address to 254.
- The domain allows letters, digits, dots and hyphens, and cannot start or end with a dot or hyphen. The final label must be at least two letters.
- Non-ASCII domains have to be converted to punycode before they are valid in an ordinary address.
Beyond syntax, three things are flagged as worth a second look rather than as errors: a domain within two edits of a well-known provider, which is almost always a typo; a role address such as info@ or support@, which many mailing platforms reject; and a plus tag, which is valid and which some signup forms wrongly refuse.
The full RFC 5322 grammar permits things almost no mail system accepts, quoted local parts with spaces, comments in parentheses, bracketed IP literals. Those are treated as out of scope here, because a validator that accepts them is technically correct and practically useless.
Examples
A likely typo
Address
ada.lovelace@gmial.com
Result
Valid syntax · warning: did you mean gmail.com?
Perfectly valid as an address. It is also the single most common way a signup email is never received.
A plus tag
Address
ada+shopping@gmail.com
Result
Valid · note: plus addressing
Gmail and many others deliver this to ada@gmail.com. It is valid, and forms that reject it are wrong to do so.
A double dot
Address
ada..lovelace@example.com
Result
Invalid: two dots in a row before the @
A dot separates atoms in the local part, so two in a row leaves an empty atom between them.
Frequently asked questions
Can this tell me whether the address actually receives mail?
No, and be sceptical of any web page that claims to. Establishing that a mailbox exists means querying MX records and opening an SMTP conversation with the receiving server, which a browser cannot do. Many servers accept every address regardless, specifically to defeat that check.
Why is a valid address flagged with a warning?
Because syntactic validity and usefulness are different. gmial.com is a real, valid domain string. It is just almost certainly not the one intended. The warnings exist for exactly the cases where the address will pass every check and still never reach a person.
Is a plus tag a valid email address?
Yes. The plus is an ordinary character in the local part, and providers that support subaddressing deliver it to the address before the plus. Rejecting it in a signup form is a bug, and a common one.
What is a role address and why does it matter?
An address belonging to a function rather than a person, info@, support@, noreply@. They usually reach a shared inbox, nobody consented individually to receive marketing at them, and many email platforms refuse to send to them or charge for the attempt.
Why not just use the standard email regular expression?
The regex that implements RFC 5322 in full is thousands of characters long and still accepts addresses no real mail system handles. Checking the parts separately catches the mistakes people actually make and gives an explanation instead of a yes or no.