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:

  1. Syntax: is the address well-formed under the email standards (RFC 5321 and 5322)? The email address format guide lists the rules.
  2. Domain and MX records: does the domain exist, and does it name mail servers that accept email? See the MX lookup.
  3. Mailbox (SMTP): does the mail server accept this exact recipient? A server that answers 550 5.1.1 means the mailbox does not exist (what that code means).
  4. Disposable: is it a temporary inbox such as Mailinator or 10 Minute Mail?
  5. Role address: is it a shared inbox like info@, sales@ or support@?
  6. Free provider: is it a personal webmail address (Gmail, Yahoo …) rather than a company domain?
  7. 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:

ResultMeaningWhat to do
ValidThe mail server accepts this mailboxSend. Take care with role addresses (info@) and suspected typos
Catch-allThe domain accepts any address, so the mailbox cannot be confirmedSend with care
RiskyThe mailbox exists but is fullCheck again later
InvalidThe mailbox or the domain does not exist, or the address is malformedDo not send: it will hard bounce
Do not mailA disposable (temporary) inboxDo not send, or ask for another address
UnknownThe 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”) or 550 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. paypal.support.team@gmail.com is a real Gmail mailbox, but not PayPal.

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

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?

Check three things: the address is well-formed, the domain has mail servers (MX records), and the mail server accepts this exact mailbox. The validator above does all three and also tells you whether the address is disposable, a shared role inbox or a likely typo.

Can I check an email address without sending a message?

Yes. The validator starts an SMTP conversation with the recipient’s mail server, asks about the address at the RCPT TO step and disconnects before any message is sent. The owner of the address never sees anything.

Does a real address mean the email I received is legit?

No. A scammer can send from a real, working mailbox, and a forged sender can use someone else’s real address. To judge an email you received, look at the sender domain’s SPF, DKIM and DMARC results in the message headers and check the domain with the DMARC checker.

What does catch-all mean, and does the free check test it?

A catch-all server accepts mail for every address on its domain, even made-up ones, so a ‘yes’ from the server proves little. The free check on this page shows the result Catch-all when the check finds that the domain accepts any address. The email validation API returns that as status catch_all on every plan, and fills its catch_all field when you ask for it (catch_all=1, paid plans from Small).

Why is the result unknown?

Some mail servers do not answer, slow down unknown senders or use greylisting, which rejects the first attempt on purpose. The address may still be valid: try again later or treat it as risky.

Is the email validator free?

Yes, for single checks on this page. To check addresses in a sign-up form or CRM, use the email validation API, which includes 100 free checks a month.

Do you store the email addresses I check?

Results are cached for up to a week so repeated checks are fast and do not contact the mail server again. See the privacy policy for details.

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

{
  "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"
}

Free email tools

Start using our email validation software today!

Get 100 validations per month for free