How to Check If an Email Address Is Valid Before You Send
What you can verify about an address without sending (format, domain, MX, disposable domains), why SMTP verification is unreliable, and what proves an address.
You can check a lot about an email address without sending anything: whether it is well formed, whether the domain exists and receives mail, whether it belongs to a disposable service or a typo of a big provider. What you cannot check reliably is whether the mailbox itself exists, because most big providers deliberately refuse to say. This guide goes through the checks in order of certainty, explains why "SMTP verification" tools are often wrong, and ends with the one method that settles it.
Quick answer
Check the format, then look up the domain's MX records with the free MX lookup: no MX means the address cannot receive mail. Catch obvious typos (gmial.com, hotmal.com) and disposable domains. Beyond that, the only proof is a message the person acts on, which is why sign-up forms use a confirmation link. Treat a hard bounce as the final verdict and remove the address.
Check 1: the format
An address is one local part, an @ sign and a domain. The local part may contain letters, digits, dots and a few symbols; the domain must have at least one dot and a valid ending. That rules out missing @ signs, spaces, double dots and commas pasted from a spreadsheet. It does not tell you the address is real, and over-strict rules reject valid addresses, so keep the check loose: something@something.something.
Check 2: the domain receives mail
Look up the MX records. If there are none and the domain has no A record either, the address is dead. If the MX points at a provider, the domain is live and someone pays for mail there. If the MX points at a forwarding or filtering service, that is still fine. This check catches most typos in the domain part, since a mistyped domain usually has no MX.
Check 3: typo and disposable domains
- Typo domains: gmial.com, gamil.com, hotmal.com, yaho.com, outlok.com. Some are registered by squatters and even have MX records, so the domain check passes while the mail goes to a stranger. A short list of common misspellings, suggested back to the user ("did you mean gmail.com?"), catches most.
- Disposable domains: mailinator.com, guerrillamail.com, 10minutemail and hundreds of rotating others. Fine for a download, useless for a customer record. Open-source block lists exist and are updated often.
- Role addresses: info@, admin@, sales@, postmaster@. Valid, but they reach a team rather than a person, and some providers' marketing rules treat them differently.
Free business email on your own domain
OquMail gives you up to 15 mailboxes on your domain — free — with guided SPF/DKIM/DMARC, webmail, IMAP/SMTP for any mail app, and a send API. Setup is a few DNS records; changes usually take effect within minutes, occasionally up to 48 hours. Start at oqumail.com.
Why SMTP verification is unreliable
Verification tools connect to the domain's mail server, start a delivery, name the recipient (RCPT TO) and hang up before sending. A server that says "user unknown" has told them the address is bad. The problem is that the big providers no longer answer honestly: Gmail, Microsoft and Yahoo accept any recipient at that stage and bounce later, catch-all domains accept everything, and servers that use greylisting refuse the first attempt from any unknown connection. Tools that do this at volume also get their IPs blocked, which turns every result into "unknown". A verdict of "valid" from such a tool means "the server did not refuse", nothing more.
What actually proves an address
- Send a message that asks for an action: a confirmation link, a code, a reply. An address that completes it is real and belongs to someone who wants your mail. This is double opt-in, and it is the standard for a reason.
- Treat a hard bounce (550 5.1.1 or similar) as proof the other way, and remove the address at once; the bounce handling guide covers the routine.
- For addresses you collected without confirmation, send a small batch first and watch the bounce rate. Above a few percent, stop and clean the list before continuing; the bounce rate guide explains the thresholds receivers use.
Common questions
Can I check an address by sending a blank test message?
You can, but a blank message to a stranger is itself a spam signal, and sending many of them harms your domain. A confirmation request with a reason is better in every way.
Are paid verification services worth it?
For cleaning an old list before a campaign, a reputable service that combines all of the checks above and reports unknowns honestly is useful. It still cannot verify Gmail or Microsoft addresses individually; nobody can.
What about addresses on my own domain?
Those you can check exactly: on OquMail, an address receives mail only if it is a mailbox or a group in your dashboard. Anything else is refused with a 550 at delivery time.
Want to see how your own domain is set up? Use the free MX lookup: it runs in your browser and stores nothing.