Free email validator · live SMTP check
Is this a real email address?
Not sure whether this is a real email address? Paste it in. The validator asks the recipient’s mail server whether the mailbox exists, without sending an email, and flags disposable, role and mistyped addresses.
Checks syntax, MX records and the mailbox itself over SMTP. No email is sent.
What makes an email address real
An address is real when a mail server accepts messages for it. The validator works through the same steps a sending server would, and stops before anything is sent:
- Syntax: is the address well-formed under the email standards (RFC 5321 and 5322)? The email address format guide lists the rules.
- Domain and MX records: does the domain exist, and does it name mail servers that accept email? See the MX lookup.
- Mailbox (SMTP): does the mail server accept this exact recipient? A server that answers
550 5.1.1means the mailbox does not exist (what that code means). - Disposable: is it a temporary inbox such as Mailinator or 10 Minute Mail?
- Role address: is it a shared inbox like info@, sales@ or support@?
- Free provider: is it a personal webmail address (Gmail, Yahoo …) rather than a company domain?
- Typos: is the domain a likely misspelling, such as gmial.com for gmail.com?
When the check finds that the domain accepts any address, the result is Catch-all; see the FAQ below.
How to read the result
The result names a status, explains why in one sentence and says what to do:
| Result | Meaning | What to do |
|---|---|---|
| Valid | The mail server accepts this mailbox | Send. Take care with role addresses (info@) and suspected typos |
| Catch-all | The domain accepts any address, so the mailbox cannot be confirmed | Send with care |
| Risky | The mailbox exists but is full | Check again later |
| Invalid | The mailbox or the domain does not exist, or the address is malformed | Do not send: it will hard bounce |
| Do not mail | A disposable (temporary) inbox | Do not send, or ask for another address |
| Unknown | The mail server did not give a clear answer (greylisting, a block, a timeout) | Check again later |
The list of result statuses in the API documentation explains every status and sub-status.
The quality score (from 0 to 1) combines these signals. A deliverable personal address on a company domain scores highest; disposable addresses and suspected typos score lowest.
Signs an address is fake or risky
- The domain has no mail servers. No MX record (and no fallback A record) means no mail can arrive.
- The server rejects the mailbox. Typical answers are
550 5.1.1(Gmail: “The email account that you tried to reach does not exist”) or550 5.1.10(Microsoft 365: recipient not found). - A throwaway domain. Temporary inbox services are on our list of disposable email domains.
- A typo domain. gmial.com, hotmial.com and yaho.com look real at a glance.
- A shared inbox. info@ or office@ addresses exist, but nobody in particular reads them.
- A free webmail address that claims to be a company.
paypalis a real Gmail mailbox, but not PayPal..support.team@ gmail.com
Real but risky: catch-all domains and full mailboxes
Two cases pass the mailbox check and can still fail later:
- Catch-all domains accept every address, so the server’s “yes” proves nothing about the person. Read how catch-all addresses work and how to handle them.
- Full mailboxes are real but temporarily refuse mail. Gmail answers
452 4.2.2(“The recipient’s inbox is out of storage space”), a soft bounce that may clear up.
What a check cannot tell you
The validator answers one question: will mail to this address be accepted? It does not tell you who owns the address, and it is not a people search. It also cannot tell you whether a message from this address is genuine. For that, look at the authentication results (SPF, DKIM, DMARC) in the email’s headers and check the sender’s domain with the SPF checker and the DMARC checker.
For the question “is this email a scam?”, use the scam email checker: it looks for look-alike brand domains, free or disposable senders, new domains and Reply-To tricks.
Check many addresses at once
- A few addresses, free: the bulk email verifier takes up to 50 per run and, without an account, checks a few addresses an hour.
- Whole lists from a CSV file: the email list cleaning service.
- Sign-up forms and CRM imports: the email validation API.
curl "https://api.emailvalidation.io/v1/info?email=name@example.com" \
-H "apikey: YOUR-API-KEY"
Guides for your stack: JavaScript, Python, PHP.
Frequently asked questions
How do I know if an email address is real?
Can I check an email address without sending a message?
Does a real address mean the email I received is legit?
What does catch-all mean, and does the free check test it?
Why is the result unknown?
Is the email validator free?
Do you store the email addresses I check?
Email validation API
Validate emails in your app
emailvalidation.io checks syntax, MX records and the mailbox over SMTP, flags disposable, role and free addresses and returns a quality score, in one request.
/v1/info Email validation API Read the documentation
100 free validations every month. No credit card required.
GET https://api.emailvalidation.io/v1/info?
{
"email": "support@emailvalidation.io",
"user": "support",
"tag": "",
"domain": "emailvalidation.io",
"format_valid": true,
"mx_found": true,
"smtp_check": true,
"catch_all": null,
"role": true,
"disposable": false,
"free": false,
"score": 0.64,
"state": "deliverable",
"reason": "low_quality",
"did_you_mean": "",
"catch_all_resolution": null,
"bounce_probability": null,
"status": "valid",
"sub_status": "role_based",
"explanation": "The mailbox exists, but it is a role address (such as info@ or support@), usually read by a team rather than one person.",
"recommended_action": "send_with_caution"
}