Email Checker: Verify Any Email Address
See if an email address is real without sending anything: we ask its mail server and show you the conversation. Or send your own email to a test address for a full deliverability report.
We ask the address's mail server, as a sender would, and stop before anything is sent.
Nothing is sent to the address. We log the domain and reply code; an answer is kept up to a day under a keyed hash, without the address.
How to verify an email address without sending an email
A mail server says whether it knows an address before any message is sent. We ask that question, then hang up.
Sending an email is a short conversation between two servers. The sender says hello (EHLO), names a return address (MAIL FROM), names the recipient (RCPT TO), and only then sends the message (DATA). The receiving server answers each line with a three-digit code (RFC 5321).
We hold the conversation up to RCPT TO and read the answer. Then we reset (RSET), ask once more about a made-up address at the same domain (the control), and say goodbye with QUIT. DATA is never sent, so nothing reaches anyone's inbox, and the empty return address means nothing can bounce back.
- 220 hfd-mx01.apple.com -- Server ESMTP (Oracle Communications Messaging Server 8.1.0.28.20250821 64bit (built Aug 21 2025))295 ms
- EHLO probe.dnsrobot.net
- 250 hfd-mx01.apple.com · 8BITMIME · PIPELINING · CHUNKING …140 ms
- MAIL FROM: <>empty sender: nothing can bounce back
- 250 2.5.0 Address Ok157 ms
- RCPT TO: <postmaster@apple.com>1
- 250 2.1.5 postmaster@apple.com Ok1200 ms
- RSET · MAIL FROM:<> · RCPT TO: <5b1c71ed2e78ecf2@apple.com>2a made-up address at the same domain
- 550 5.1.1 unknown or illegal alias: 5b1c71ed2e78ecf2@apple.com2145 ms
DATAnever sent: we stop before the message- QUIT
- Syntax1 ms
- Domain & MX181 ms
- Lists< 1 ms
- Mail server1.5 s
550 5.1.1), which is what makes its yes to the real one believable.
The verdictDeliverable, Undeliverable, Accept-all, Risky or Unknown, with the reply codes that decided it and one sentence saying why.The four stepsSyntax, the domain's mail servers, the disposable and role lists, then the mail server itself, each with its time.The answers that decidedThe address and a made-up address at the same domain: a yes to the first and a no to the second makes the yes believable.The conversationEvery command our server sent and every reply the mail server gave, as it happened, with each reply's code and time.Nothing sentDATA is never sent: the conversation stops before a message exists, so nothing reaches the inbox and nothing can bounce.What each email verifier result means
Five answers, each tied to the reply that produced it.
Deliverable needs two things: a yes for the address and a no for a made-up one at the same domain (or a provider measured to check every address). Without the second answer, a yes is only a yes from a server that might say yes to anyone.
Unknown is honest, not a failure: the server refused to talk to our checking server, asked us to wait, or didn't answer. It says nothing about the address, so we never turn it into “invalid”.
- Deliverable
- The address
- 250
- A made-up one
- 550
The server knows the address and refuses a stranger at the same domain.
Send. - Undeliverable
- The address
- 550 5.1.1
- Or the domain
- null MXno such domain
The server says the mailbox doesn't exist, or the domain takes no mail at all.
Don't send: it would bounce. - Accept-all
- The address
- 250
- A made-up one
- 250
The server says yes to anything, so its yes proves nothing.
Send only if you got it from the person. - Risky
- The domain
- disposable list
- Or the mailbox
- 552full
It exists, but it won't last or can't take mail right now.
Avoid it for anything you need later. - Unknown
- The address
- 451554no answer
- Or DNS
- SERVFAIL
The server wouldn't answer or asked us to come back. Not a no.
Check again later, or just send.
Which email providers can be verified
What a check can tell depends on the provider. We measured 65 mail domains, run by 53 providers, from our server.
Most consumer providers refuse unknown addresses at RCPT, so a check there is reliable. Some accept everything and sort mail later; Outlook.com sometimes says yes once to stop address harvesting; a few refuse servers they don't know.
We never use password-recovery or sign-up pages to test an address, as some checkers do: it breaks the providers' terms and is exactly how attackers find accounts.
- 163.com
- au.com
- biglobe.ne.jp
- comcast.net
- daum.net
- docomo.ne.jp
- ezweb.ne.jp
- freenet.de
- gmail.com
- gmx.com
- gmx.de
- hanmail.net
- hey.com
- i.softbank.jp
- icloud.com
- kakao.com
- laposte.net
- libero.it
- mail.com
- mailbox.org
- naver.com
- o2.pl
- ocn.ne.jp
- orange.fr
- posteo.de
- proton.me
- qq.com
- rambler.ru
- rediffmail.com
- seznam.cz
- sfr.fr
- softbank.ne.jp
- terra.com.br
- tuta.io
- uol.com.br
- web.de
- wp.pl
- yandex.ru
- zoho.com
- apple.com
- microsoft.com
- salesforce.com
- hotmail.com
- outlook.com
- mail.ru
- yahoo.co.jp
- amazon.com
- github.com
- google.com
- netflix.com
- shopify.com
- spotify.com
- stripe.com
- aol.com
- att.net
- bol.com.br
- cox.net
- free.fr
- nifty.com
- verizon.net
- yahoo.com
- fastmail.com
- interia.pl
- onet.pl
- t-online.de
Catch-all, greylisting and refusals: when an address can't be confirmed
Three ways a mail server avoids answering, and how each one shows up in the result.
An accept-all (catch-all) server says 250 to every address, real or not. Many Microsoft 365 companies work this way without knowing: Directory-Based Edge Blocking only refuses unknown addresses when the domain is set to Authoritative.
Greylisting answers 451 to senders it hasn't seen, then accepts the same question a minute later (RFC 6647). Refusals can come at any step up to RCPT (bol.com.br's came at RCPT itself), but they name our server, not the address, so the result is Unknown, never a no.
- sam.example@example.org250
- 9e2b7c41d0a8f365@example.org250
Both got a yes: the server can't tell them apart, so neither can we.
Fastmail did this to us. The result offers Check again after a minute, never a tight loop. (onet.pl and interia.pl also answered 450, but citing a rule with an end date and a delivery limit: refusals, so we don't offer the wait.)
| connect | greeting | EHLO | RCPT | ||
|---|---|---|---|---|---|
| nifty.com | 554 | ||||
| FCrDNS check failed: reverse DNS does not match the connecting IP | |||||
| free.fr | 421 | ||||
| Refused. Your reverse DNS entry does not resolve to an IP. | |||||
| t-online.de | 554 | ||||
| None/bad reputation … (NOWL) | |||||
| yahoo.com | 550 5.7.25 | ||||
| Forward-confirmed reverse DNS failed | |||||
| bol.com.br | 450 4.7.25 | ||||
| Client host rejected: cannot find your hostname | |||||
A refusal names our server, not the address, wherever it comes (bol.com.br's came at RCPT), so the result is Unknown, never “invalid”.
Disposable, role, free and alias email addresses
Flags describe the address; they never decide the result on their own.
A role inbox (support@, sales@) is real but shared, a free address is normal for people, an alias forwards to someone's real inbox, and a disposable address is a public inbox that's gone within hours.
Japanese carriers still have addresses with two dots, or a dot before the @. They break the RFC but receive mail, so we ask the mail server about them exactly as typed.
- Role inboxpostmaster@support@sales@
A team inbox: real and often read, but nobody's personal address. RFC 2142 names the ones a domain should have.
- Free provider
Anyone can sign up. Normal for people; unusual for a company's own staff.
- Disposable@mailinator.comabout 9,900 domains
Public inboxes that vanish within hours. From the disposable-email-domains list (CC0), matched at the registrable domain.
- Alias service
Forwards to a real inbox the person keeps private. Not disposable: replies reach them.
- Legacy carrier addresstaro..yamada@docomo.ne.jp
Not RFC-valid, still in use: docomo and au let people keep older addresses with “..” or “.@”. We ask the server exactly as typed.
Test your email: how it works
Send one real email to a one-time address; the report builds as each part is checked.
Your test address takes one message for 2 hours. Our own mail server receives it for mailtest.dnsrobot.net over TLS and sees the SMTP session first-hand: the TLS version, the greeting, how the sending server talks. Cloudflare Email Routing is the backup path.
Everything runs on what actually arrived: the address that connected, the headers your service added, the HTML your readers will get. Then SPF, DKIM, DMARC, ARC, the format, the content, the unsubscribe headers, SpamAssassin and the inbox providers' rules.
The full guide, with what a receiving server checks in order and the codes Gmail and Outlook.com refuse with, is on the email deliverability test page.
- Your mail appyou press Send14:02:10
- Your sending serveryour email serviceSendGrid · 198.51.100.24Reverse DNS (PTR)HELO nameBlocklists
- Our mail serverreceives it over TLSmailprobe.dnsrobot.net · TLSv1.3the SMTP sessionTLS versionEHLO and pipeliningLine endingsthe messageSPFDKIMDMARCARCFormatContentUnsubscribe
- Your reportparts appear as they're checked14:02:24SpamAssassinGmail · Yahoo · Outlook.com rulesScore
How the test scores your message
Ten points, minus deductions that each name their rule. Nothing we couldn't check costs a point.
A score is only useful if you can see how it was made, so the whole table is here, generated from the same code that scores your message. Each deduction rests on an RFC, a mailbox provider's own page or a SpamAssassin rule.
Bulk-only rules, like one-click unsubscribe, deduct only when the message looks like bulk mail. What one message can't show (complaint rates, sending volume) is “can't tell”, and costs nothing.
10 − 1.5 − 0.7 = 7.8
- 1Bulk mail without working one-click unsubscribe (RFC 8058: both headers, signed by DKIM)
- 2SpamAssassin 3.4
| What we found | Points off | Part |
|---|---|---|
| Neither SPF passes nor any DKIM signature verifies | −3 | SPF |
| DMARC fails: no aligned SPF or DKIM pass, and the From domain publishes a policy | −2.5 | DMARC |
| The From header has no single domain DMARC can apply to | −2 | DMARC |
| The From domain publishes no DMARC recordbulk mail only | −1 | DMARC |
| SPF fail: the record says this server may not send | −1 | SPF |
| SPF softfail or neutral | −0.5 | SPF |
| No SPF record for the MAIL FROM (or HELO) domain | −1 | SPF |
| SPF permerror: a broken record or more than 10 DNS lookups | −1 | SPF |
| The message isn't DKIM-signedbulk mail only | −1 | DKIM |
| DKIM-signed, but every signature fails (treated as unsigned)bulk mail only | −1 | DKIM |
| A signature uses an RSA key under 1,024 bits | −1 | DKIM |
| DKIM passes, but no passing signature matches the From domain | −0.5 | DKIM |
| The sending address is on a major blocklist | −3 | Sending server |
| The sending address is on a smaller blocklist | −1 | Sending server |
| The sending address has no reverse DNS (PTR) | −2.5 | Sending server |
| The PTR name doesn't resolve back to the sending address | −1.5 | Sending server |
| HELO is not a fully qualified name | −0.5 | Sending server |
| The server sent without TLS | −1.5 | SMTP session |
| Bare LF or CR line endings in the message | 0a warning, not counted in the score (−0.5 once a source is cited) | SMTP session |
| From is missing, repeated, unreadable, or lists several mailboxes without Sender | −2 | Format |
| Date is missing or unreadable | −1 | Format |
| Message-ID is missing or malformed | −1 | Format |
| Date is more than a day from the time it arrived | 0a warning, not counted in the score (−0.5 once a source is cited) | Format |
| A field that may appear once appears twice | −0.5 | Format |
| Lines longer than 998 characters | −0.25 | Format |
| Images with almost no text | 0a warning, not counted in the score (−1 once a source is cited) | Content |
| HTML with no plain-text version | −0.5 | Content |
| HTML over about 102 KB: Gmail may clip it | 0a warning, not counted in the score (−0.5 once a source is cited) | Content |
| Links through URL shorteners | 0a warning, not counted in the score (−1 once a source is cited) | Content |
| Links to a bare IP address | 0a warning, not counted in the score (−1 once a source is cited) | Content |
| Links to a domain that imitates another | 0a warning, not counted in the score (−2 once a source is cited) | Content |
| javascript:, data: or file: links | 0a warning, not counted in the score (−2 once a source is cited) | Content |
| Link text shows one domain and the link goes to another | 0a warning, not counted in the score (−0.5 once a source is cited) | Content |
| An attachment type Gmail blocks | 0a warning, not counted in the score (−2 once a source is cited) | Content |
| Links to a host Cloudflare's security resolver blocks (malware or phishing) | 0a warning, not counted in the score (−2 once a source is cited) | Content |
| Scripts, iframes, forms or embedded objects in the HTML | −1 | Content |
| 1Bulk mail without working one-click unsubscribe (RFC 8058: both headers, signed by DKIM) | −1.5 | Unsubscribe |
| 2SpamAssassin's points above 2.0 | half the points over 2.0, at most 3 | SpamAssassin |
| SpamAssassin's score reaches its spam threshold | −2 | SpamAssassin |
| Not checked, or can't tell from one message | 0 | – |
SPF, DKIM and DMARC alignment in one picture
DMARC passes when SPF or DKIM passes for a domain that matches the From address people see.
An email has two senders: the hidden envelope sender that bounces go to, and the From address people read. SPF checks the first, DKIM checks a signature, and DMARC ties either one to the second (RFC 9989).
Email services usually pass DMARC through DKIM: they sign with your domain (a record you add) while bounces go to their own subdomain.
- SPF pass
198.51.100.24may send forem.example.orgaligned:em.example.orgbelongs toexample.org - DKIM passthe signature by
example.orgverifiesaligned: the same domain - DKIM passthe signature by
sendgrid.infoverifiesnot aligned: a different domain (that's fine) - DMARC passFrom
example.org: at least one pass is alignedpolicyp=none· relaxed alignment
Gmail, Yahoo and Outlook.com sender requirements
Since 2024 the biggest inbox providers publish what they require. Here they are side by side.
Every sender needs SPF or DKIM, working reverse DNS and a well-formed message. Bulk senders also need both SPF and DKIM, a DMARC record aligned with the From address, one-click unsubscribe and a low complaint rate.
Our report checks every rule one message can show, and says “can't tell” for the rest: complaint rates live in Google Postmaster Tools and Yahoo's Sender Hub.
| Gmail | Yahoo | Outlook.com | |||
|---|---|---|---|---|---|
| All senders | Bulk senders5,000+ a day | All senders | Bulk sendersno number given | Bulk senders5,000+ a day | |
| SPF or DKIM passes4.7.27 · 4.7.30 | – | – | – | ||
| SPF and DKIM both pass4.7.27 · 4.7.30 | – | – | – | ||
| SPF passes | – | – | – | – | 1 |
| DKIM passes | – | – | – | – | 1 |
| A DMARC record, p=none or stricter4.7.40 · 5.7.40 | – | – | – | ||
| From aligned with SPF or DKIM (DMARC passes)4.7.32 · 5.7.32 | – | – | 1 | ||
| Forward and reverse DNS (PTR)4.7.23 | – | – | – | ||
| TLS on the connection4.7.29 | – | – | – | – | |
| RFC 5322 message format | 2 | – | – | – | |
| No Gmail From: from elsewhere | – | – | – | – | |
| A valid From or Reply-To address | – | – | – | – | |
| One-click unsubscribe (RFC 8058) | – | – | – | ||
| List-Unsubscribe (mailto or https) | – | – | – | – | |
| A visible unsubscribe link in the body | – | – | |||
| Spam complaints under 0.3% | – | – | – | ||
requiredrecommended– not in that provider's rules4.7.23the code Gmail answers with when it's missingone message can't show it: we say “can't tell”
1 550 5.7.5152 Gmail also asks for a single address in From.
Privacy: what we keep, and what the mail server sees
The address you check isn't kept: its answer is, for up to a day, under a keyed hash and without the address. A test message's body is deleted right after the analysis.
Checking an address sends its mail server a few short commands and nothing else: EHLO, MAIL FROM:<>, RCPT TO for the address and for one made-up address (and once more for Outlook.com), RSET, QUIT. The server sees our server's name, an empty sender and the addresses asked about: not you, and not a message.
A test report keeps the message's headers, its links and a 140-character preview, with the findings, for 7 days so you can share its link; the full body and attachments are deleted right after the analysis. You can delete the report at any time from the report itself.
- You type itIt goes to our server over HTTPS, in the request only.
- The mail server sees
EHLO probe.dnsrobot.net · MAIL FROM:<> · RCPT TO:<…> · RSET · MAIL FROM:<> · RCPT TO:<…> · QUITThese few commands and nothing else: our server's name, an empty sender, RCPT TO for the address and for one made-up address (and once more for Outlook.com). No message, no name, nothing about you. - We keepNot the address. Logs hold the domain and the reply code; a definite answer is kept up to a day under a keyed hash, without the address.
- The message itselfIts body and attachments are deleted right after the analysis. SpamAssassin reads it in memory on our mail server; nothing is logged.
- The reportThe headers, the domains the message links to (with one example link for each) and a 140-character preview: 7 days, or until you press Delete report. Anyone with its link can open it.
- We neverforward it, reply to it, or read it by hand.
Frequently asked questions
Is this email checker free?
How do I verify an email address without sending an email?
How accurate is an email verifier, and can a valid address still bounce?
Will the person know I checked their email address?
Why does a Gmail, Yahoo or Outlook.com address give this result?
What is a catch-all (accept-all) email address?
Why is my email check result Unknown?
How do I test my email's deliverability and spam score?
Does a 10/10 from a mail tester mean my email lands in the inbox?
Do you store the addresses I check or the emails I send?
What does “verify email address” mean, compared with validation?
Can I check a list of email addresses?
Missing something?Suggest a feature or a new tool
Related tools
MTA-STS Checker
Check a domain's MTA-STS record, policy file and every mail server's certificate on port 25, the way sending servers test them; then generate a policy
Disposable Email Checker
Check if an email address or domain is disposable: the lists that carry it, where its mail goes and the throwaway service behind it; bulk check and the full list
SPF Record Checker
Validate SPF records and check DNS lookup count per RFC 7208
DMARC Checker
Check any domain's DMARC policy the way receivers read it, with reports, SPF and DKIM
MX Lookup
Find mail exchange records and mail server details
Email Header Analyzer
Parse raw email headers and trace the email journey






