How to Check If an Email Address Is Valid Without Sending Anything
You can determine whether an email address is real without sending anything to it. The method is not a trick — it is the ordinary mail delivery conversation, stopped one step before delivery.
Here are the four checks, in the order they should run, and what each can actually prove.
1. Syntax
Does the address follow the rules for an email address? This catches typos, missing @ symbols and invalid characters.
It is cheap and instant, and it proves almost nothing. asdkjhaslkdjh@gmail.com is perfectly valid syntax and certainly not a real mailbox. Any tool that stops here is a spell-checker.
2. Domain and MX records
Every domain that receives mail publishes MX records in DNS, naming the servers that accept mail for it. If a domain has none, it cannot receive email and every address at it is dead.
You can check by hand:
$ dig +short MX gmail.com
5 gmail-smtp-in.l.google.com.
10 alt1.gmail-smtp-in.l.google.com.
No MX record and no fallback A record means the domain cannot receive mail. RFC 5321 says a sender falls back to the domain's A record when no MX exists, so a missing MX alone is a strong signal rather than proof. A null MX (MX 0 .) is definitive: the domain has declared it accepts no mail. Either way, this is the cheapest check available, and it catches typo'd and abandoned domains.
3. Disposable and role checks
Two things worth knowing before you send anything:
Disposable domains — Mailinator, Guerrilla Mail and thousands of others — are throwaway inboxes. Technically the mailbox is real, but the person behind it will never see the message.
Role addresses — info@, sales@, admin@ — are read by several people or nobody, attract spam complaints, and are sometimes recycled into spam traps.
Neither is a hard failure. Both are decisions you should make deliberately rather than discover afterwards.
4. The SMTP mailbox check
This is the one that actually answers the question.
You connect to the domain's mail server and start the conversation you would start if you were delivering a message — then stop before sending anything:
$ telnet gmail-smtp-in.l.google.com 25
> HELO yourdomain.com
< 250 mx.google.com at your service
> MAIL FROM: <you@yourdomain.com>
< 250 2.1.0 OK
> RCPT TO: <someone@gmail.com>
< 250 2.1.5 OK ← the mailbox exists
If the mailbox does not exist:
> RCPT TO: <definitely-not-real-xyz9987661@gmail.com>
< 550-5.1.1 The email account that you tried to reach does not exist
Then QUIT. No message is sent, and nothing appears in anyone's inbox. The DATA command — the one that actually transmits a message — is never issued.
That difference between 250 and 550 is the whole of email verification.
Why you probably cannot run this yourself
Try that telnet command from your laptop and it will most likely hang. Almost every home ISP and cloud provider blocks outbound port 25 to prevent spam. We measured it on two major hosts:
| Host | Outbound port 25 |
|---|---|
| Railway | Blocked |
| DigitalOcean | Blocked |
This is the single reason email verification exists as a paid service. The check itself is simple; being on a network permitted to make it, from an IP with a clean reputation and matching reverse DNS, is the hard part.
It is also worth knowing because of how some tools handle it. If a verifier's SMTP check fails and the code falls back to reporting valid, then every address on a live domain passes and nothing has actually been verified. We know that failure mode intimately — our own engine did it until we found it.
What cannot be answered
Two cases defeat the method entirely:
Catch-all domains accept every address at the domain, real or not. Acceptance proves nothing, so nothing can be confirmed. We wrote about that here.
Providers that do not answer clearly. Yahoo and iCloud often decline to confirm or deny a mailbox at the RCPT stage, so the probe is inconclusive. Outlook.com and Microsoft 365, by contrast, reject unknown recipients during the conversation.
An honest verifier reports both as risky. A verifier that reports them as valid is guessing and hoping you never check.
The short version
- Syntax — catches typos, proves little
- MX records — shows whether a domain can receive mail at all
- Disposable and role flags — decisions, not failures
- SMTP mailbox check — the actual answer, when the network allows it
Anything that cannot be established should come back risky. The tools worth paying for are the ones willing to tell you when they do not know.
Common questions
Can you check if an email address exists without sending an email?
Yes. You connect to the recipient's mail server and begin the delivery conversation, asking whether it would accept mail for that address, then abandon the connection before any message is transmitted. The server answers 250 if the mailbox exists or 550 if it does not, and nothing is ever delivered.
How do I manually verify an email address?
Look up the domain's MX records, connect to the primary mail server on port 25, and issue HELO, MAIL FROM and RCPT TO commands. The response code to RCPT TO tells you whether the mailbox exists. This requires outbound port 25, which most home and cloud networks block.
Does the person receive anything when their email is verified?
No. The conversation is abandoned after the recipient command and before any message data is sent, so nothing arrives in their inbox and no notification is generated.
Why can't every address be verified?
Catch-all domains accept every address whether or not it exists, and some large providers accept mail for unknown recipients then reject it later. In those cases no external check can confirm a specific mailbox, and an honest verifier reports the result as risky rather than guessing.
Verify unlimited addresses for $29.99/month
Real SMTP mailbox checks. No credits, no per-email fees.
Get Started