Free Email Verifier

How to check if an email is valid without sending

· 5 min read

You can confirm an email is valid without ever sending a message. Three layers do the work: syntax validation checks the format, an MX-record lookup confirms the domain accepts mail, and an SMTP handshake asks the receiving server whether the mailbox exists. All three run silently, with no email delivered.

What makes an email address valid?

A valid email address has correct syntax, a domain that exists and accepts mail, and a mailbox that is actually reachable. Syntax alone is not enough. [email protected] can be formatted perfectly and still bounce if the domain has no mail server or the mailbox was deleted.

Validity is a chain. Break any link and the address fails. A typo like gmial.com breaks the domain link. A former employee breaks the mailbox link even when the domain is healthy. Checking only the format catches the obvious errors and misses the expensive ones, the addresses that pass every regex and still hard bounce on your next send. Hard bounces are what mailbox providers watch, and too many of them push your future mail toward the spam folder.

So a real validity check has to go past the string itself. It has to ask the internet two questions the format cannot answer: does this domain accept mail at all, and does this exact mailbox exist. Both answers are available without sending anything.

How do you check if an email is valid without sending a message?

Run three checks in sequence. First, validate the syntax against the email format rules. Second, query the domain's MX records to confirm a mail server exists. Third, open an SMTP connection and issue the RCPT TO command, which asks the server if the mailbox exists, then disconnect before any message is sent.

  1. Check the syntax. Confirm there is one @ sign, a valid local part, and a properly formed domain. Reject spaces, double dots, and a missing top-level domain.
  2. Catch typos. Compare the domain against common providers, then suggest gmail.com when someone types gmial.com or gmai.com.
  3. Look up MX records. A single DNS query returns the mail servers for the domain. No MX record means no mailbox there can receive mail.
  4. Run the SMTP check. Connect to the highest-priority mail server, say HELO, issue MAIL FROM and RCPT TO, then read the response code before closing the session.
  5. Read the verdict. A 250 response suggests the mailbox accepts mail. A 550 means it does not exist. Some servers stay vague, which is where catch-all and unknown results come from.

None of these steps delivers a message. The SMTP session ends at RCPT TO, before the DATA command that would actually transmit content. The receiving server has told you whether the mailbox exists, and you have closed the connection. From the mailbox owner's side, nothing arrived and nothing is logged as mail.

Syntax, MX, and SMTP: what each layer confirms

Each layer filters what the previous one let through. Syntax removes garbage in milliseconds. MX lookups remove dead domains. The SMTP handshake is the only step that speaks to the receiving server about a specific mailbox, and it is the one that separates a real inbox from an address that merely looks real.

CheckWhat it confirmsWhat it misses
SyntaxThe address is formatted correctlyWhether the domain or mailbox exists
MX recordThe domain has a mail server ready to receiveWhether the specific mailbox is active
SMTP (RCPT TO)The mailbox exists and accepts mailCatch-all domains that accept everything

Order matters for speed and cost. Cheap checks run first. Syntax and typo detection happen locally in a few milliseconds and cost nothing. MX lookups are a single DNS query. Only addresses that survive both reach the SMTP stage, which is the slowest step because it waits on a remote server. Filtering in this order means you spend real time only on addresses that already look promising.

You can run all three checks without writing a line of code. Paste a list or drop a CSV into the Free Email Verifier. It parses the file in your browser, runs a local safety scan for syntax, duplicates, and disposable domains, then applies MX and SMTP-level mailbox checks. Ten checks a day need no signup. If you would rather hand off list hygiene and pipeline entirely, Synthisia, the team behind the tool, does that as a service.

Check your list right now, free

10 checks a day with no signup. 100 a day with just your email.

Verify emails free

What do the verdicts mean?

Most tools sort results into four buckets. Deliverable means the mailbox accepts mail. Invalid means it does not exist or the domain is dead. Risky covers catch-all domains, role addresses, and disposable providers. Unknown means the server refused to confirm, often due to greylisting or rate limits.

Treat each verdict as an instruction. Send to deliverable addresses. Drop invalid ones before they hit your list. Review risky results by hand, since a role address like info@ may be fine for support but poor for cold outreach. Recheck unknown addresses later, because a temporary block often clears within a few hours.

The gap between risky and invalid is where most people lose money. Invalid is a clean delete. Risky needs judgment. A catch-all domain might deliver perfectly, or it might swallow your message into a black hole. Weigh the address against the send. High-value outreach deserves a manual look. A newsletter blast can usually skip the risky rows without much loss.

How accurate is validation that never sends an email?

Very accurate for most domains, with two known limits. Catch-all servers accept every address, so no check can confirm a specific mailbox there, and the result is marked risky. Some providers hide mailbox status to fight spammers, returning unknown. For everything else, an SMTP check maps closely to real delivery.

A note on catch-all domains

A catch-all domain is configured to accept mail for any address, valid or not, and sort it out later. The SMTP server says yes to everything, so a 250 response no longer proves the mailbox exists. Good tools flag these as risky rather than deliverable, which is the honest call.

This is why verification cuts bounces without eliminating them entirely. Aim to keep your bounce rate under 2% at send time. Clean the invalids, hold the unknowns for a recheck, and decide on the risky group based on how much a bounce costs you on that campaign.

One more habit helps. Recheck unknowns once, not five times. Servers that greylist you clear on a second attempt within a few hours. If an address still returns unknown after two tries across a day, treat it like a risky address and decide based on the value of reaching that person.

Putting it into practice

Validate before every important send, not once a quarter. Lists decay by roughly 2 to 3% each month as people change jobs and abandon addresses. A quick pass through the Free Email Verifier before a campaign catches the addresses that went stale since your last check, and it does the syntax, MX, and SMTP work in one step so you never have to send a test message to find out.