How to Test If an Email Address Is Valid (2026)

Learn 4 ways to test if an email address is valid - from free tools to manual SMTP checks. Includes response codes, catch-all fixes, and tool picks.

8 min readProspeo Team

How to Test If an Email Address Is Valid Before You Hit Send

You pasted an email into three different checkers and got three different answers. One says "valid," another says "risky," the third says "unknown." Now you're less confident than when you started.

Here's the thing: if you've ever tried to test whether an email address is valid and gotten contradictory results, the problem isn't you. It's that email verification is messier than any tool's marketing page admits. A popular SuperUser thread covers this exact frustration - people seeing the same address return "valid" on one service and "unknown" on another. Let's cut through the noise.

What "Valid Email" Actually Means

There's a useful distinction most people miss. Email validation checks whether an address is formatted correctly - does it have an @ symbol, a proper domain, no illegal characters? That's syntax. Email verification goes deeper, actually pinging the mail server to confirm the mailbox exists.

Three levels of email validation explained visually
Three levels of email validation explained visually

Think of it as three levels:

  • Syntax: john@company.com passes, john@@company doesn't.
  • Domain: Does company.com have an MX record that accepts mail?
  • Mailbox: Does the server confirm that john is a real recipient?

Most free tools handle levels one and two well. Level three is where things get complicated - and where most "unknown" results come from. Most bounces happen there too, not at syntax or domain. There's also a fourth category worth knowing: disposable addresses from services like Mailinator pass syntax and domain checks but are worthless for ongoing communication. Most verification tools flag these automatically.

What You Need (Quick Version)

Your next step depends on what you're actually trying to do:

  • Checking one email right now? Paste it into a free tool like Verifalia or Hunter. You'll get an answer in seconds.
  • Cleaning a list of hundreds or thousands? Upload a CSV to a bulk verifier like NeverBounce. Budget around $8 per thousand emails.
  • Running outbound prospecting? Skip verification entirely. Use a data source that pre-verifies emails before you ever see them - you shouldn't be cleaning data you just bought. (If you're building lists, see email list providers.)

Why Testing Matters

Email lists decay at roughly 22-28% per year. People change jobs, companies rebrand domains, mailboxes get deactivated. A list you built six months ago has already lost a meaningful chunk of valid addresses.

That matters because ISPs watch your bounce rate like a hawk. Anything above 2% is a red flag that damages your sender reputation, and once that reputation drops, even your emails to valid addresses start landing in spam. The target is a 97-99% delivery rate - you can't hit that number if you're sending to dead mailboxes. (More on this in our email deliverability guide.)

Bad emails don't just bounce. They poison the well for every other email you send. If you’re monitoring this closely, track your email bounce rate and use email reputation tools to catch issues early.

Prospeo

You shouldn't have to paste emails into three different checkers and hope for the best. Prospeo's 5-step verification - with catch-all handling, spam-trap removal, and honeypot filtering - delivers 98% email accuracy on 143M+ addresses. Every record refreshes every 7 days, not every 6 weeks.

Skip the cleanup. Start with emails that are already verified.

Four Methods to Verify an Email Address

1. Free Online Verification Tools

If you need to check a handful of addresses, free tools get the job done without any technical setup:

Tool Free Tier Best For
Verifalia Single checks, free One-off lookups
Hunter Free single checks (no signup); free plan up to 100/month Quick spot checks
ZeroBounce 100 free credits/month Small batch testing
EmailListVerify 3 free checks Trying before buying

Use these if you're verifying a few addresses before a manual outreach email or confirming a contact you found on a company website. Skip these if you're working with lists over a few hundred - free tiers run out fast, and the per-email cost on paid plans adds up when you're doing this regularly. If you’re comparing options, start with Bouncer alternatives or Hunter alternatives.

The main frustration with free tiers is exactly what you'd expect: they're designed to get you hooked, not to solve the problem at scale. Fifty verifications a month is nothing if you're doing real outbound.

2. Manual SMTP Verification (Telnet)

This is the "look under the hood" method. It's educational, useful for troubleshooting, and absolutely doesn't scale. But if you want to understand what verification tools actually do behind the scenes, it's worth walking through once.

Step-by-step SMTP email verification flow with response codes
Step-by-step SMTP email verification flow with response codes

Step 1: Find the mail server. Open a terminal and look up the domain's MX record:

nslookup -q=mx company.com.

Note the trailing dot after the domain - it prevents your DNS client from appending local search suffixes, which can return wrong results. Pick the mail server with the lowest preference value.

Step 2: Connect via Telnet.

[telnet mail.company.com 25](https://www.iana.org/assignments/service-names-port-numbers)

Step 3: Run the SMTP handshake. Use EHLO (not HELO - EHLO supports modern ESMTP extensions like STARTTLS):

EHLO yourdomain.com
MAIL FROM:<test@yourdomain.com>
RCPT TO:<john@company.com>
QUIT

Step 4: Read the response code. A 250 response to RCPT TO means the server accepted the recipient. A 550 means the mailbox doesn't exist. A 450 usually means greylisting - the server is temporarily rejecting you to see if you retry like a legitimate mail server would.

A 250 response doesn't guarantee the address is real. On catch-all domains, the server returns 250 for every address - real or invented. We've seen this trip up even experienced ops teams who assume 250 equals confirmed.

There's also a real risk here. Some RBLs (real-time blackhole lists) will flag your IP for running SMTP verification probes. A Stack Overflow thread on this topic warns that it looks like address enumeration, and anti-abuse systems treat it accordingly. Use this method for diagnosing mail server behavior, not for verifying lists.

3. Bulk List Verification

This is the practical workflow for most teams: export your contact list as a CSV, upload it to a bulk verification service, wait for processing, review the results (valid, invalid, unknown/risky), then re-import only the clean addresses.

Pricing is usually pay-per-email:

  • NeverBounce: ~$0.008-$0.01 per email at volume
  • ZeroBounce: ~$0.008-$0.015 per email depending on volume
  • EmailListVerify: Often the budget option at roughly $0.004-$0.008 per email

All of them will return a chunk of "unknown" results for catch-all domains - that's structural, not a bug.

We've run the same list through three different bulk verifiers and gotten valid counts that differed by 15%. The divergence almost always traces back to catch-all handling and greylisting retry logic. If accuracy matters to your workflow, test two services against the same sample before committing.

Look, if your deal sizes are modest - say under $15k - the cost of verifying a purchased list plus the time spent cleaning it often exceeds the cost of just starting with pre-verified data. The "buy cheap, clean later" model is a false economy for most SMB sales teams. (Related: data enrichment services.)

4. API-Based Verification (Developers)

If you're building a signup form or running real-time validation in a product, API-based verification is the right approach. Hunter and ZeroBounce both offer verification APIs that check syntax, domain, and mailbox existence on the fly, often returning results in under 500ms. Hunter's API also returns confidence scores alongside valid/invalid status, which is useful for edge cases.

For signup flows, double opt-in remains the gold standard. Send a confirmation email, require a click. It's slower than API verification but eliminates fake signups entirely. One caveat: double opt-in doesn't catch fraud or bot signups that use real but stolen email addresses - for that, you need additional signals like device fingerprinting or CAPTCHA.

For real-time lead capture where you can't wait for opt-in, an API check at the point of entry catches typos and disposable addresses before they hit your database. If you’re doing this for outbound, it’s also worth understanding email velocity so you don’t create deliverability problems.

SMTP Response Codes Cheat Sheet

Code Meaning What to Do
250 Accepted Valid unless catch-all domain
421 Service unavailable Server is busy - retry later
450 Temp failure / greylisting Retry after 15-30 min
550 Mailbox doesn't exist Remove from list immediately

A 500-level error with the message 5.3.3 Unrecognized command means you typed something wrong in your Telnet session. Backspace often doesn't work in Telnet - retype the whole command.

Why Verification Returns "Unknown"

This is the part that frustrates everyone. You run a list through a reputable verifier and 30% of the results come back as "unknown" or "accept-all."

Three reasons email verification returns unknown results
Three reasons email verification returns unknown results

Catch-all domains. Between 30 and 40% of B2B email addresses sit on catch-all domains. These servers accept mail for any address at the domain - real or fake. When a verifier sends RCPT TO:<randomgarbage@company.com> and gets back 250 OK, it can't distinguish that from a real mailbox. The detection trick: test a clearly fake address at the domain. If the server accepts xkq7z9fake@company.com, you're dealing with a catch-all.

Greylisting. Some servers temporarily reject the first connection from an unknown sender, expecting legitimate mail servers to retry. Verification tools that don't implement retry logic mark these as unknown. Good verifiers use exponential backoff, but not all bother.

Enterprise gateway blocking. Companies running Proofpoint, Mimecast, or Microsoft Defender often have security layers that detect and block verification probes entirely. The gateway rate-limits or rejects your SMTP connection before it ever reaches the actual mailbox server. This is increasingly common at mid-market and enterprise companies - exactly the accounts most outbound teams are trying to reach.

No verification tool gives you 100% accuracy. It's structurally impossible when a third of B2B domains accept everything. The real question isn't "which verifier is most accurate" - it's "how do I avoid needing to verify in the first place?" (If you’re cleaning lists because you scraped them, see web scraping lead generation.)

Which Method Should You Use?

Situation Best Method
One-off email check Free tool (Verifalia, Hunter)
SMTP troubleshooting Manual Telnet
Cleaning a dirty list Bulk verifier (NeverBounce, ZeroBounce)
Outbound prospecting Pre-verified data source
Decision matrix for choosing the right email verification method
Decision matrix for choosing the right email verification method

For outbound prospecting, the smartest move is to never need verification at all. Prospeo runs every email through a 5-step verification process - catch-all handling, spam-trap removal, honeypot filtering - before it ever appears in your search results. With 98% email accuracy and a database that refreshes every 7 days, you're starting with clean data instead of buying a list and then paying again to clean it. Free tier gives you 75 emails per month to test it. If you want to level up the rest of your outbound motion, use these sales prospecting techniques.

Prospeo

Buying a list and then paying $0.008/email to clean it is a false economy. Prospeo gives you pre-verified emails at ~$0.01 each - no bulk verifier needed, no unknown results to sort through, no bounced sends torching your sender reputation.

One cost, zero bounces. That's how outbound should work.

FAQ

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

Yes. The SMTP RCPT TO method checks whether a mail server accepts a recipient without delivering anything. Verification tools automate this exact process. The limitation is catch-all domains - they accept any address, returning a false "valid" result for every query.

Why do different email checkers give different results?

Each tool handles catch-all domains, greylisting, and retry logic differently. One verifier might flag a greylisted address as "unknown" while another retries and confirms it. Timing matters too - check the same address an hour apart and greylisting behavior can change the result.

How often should I re-verify my email list?

At minimum, quarterly. Business email lists decay by roughly 22-28% annually, so even a list verified in January will have meaningful rot by April. If you're sourcing contacts from a platform with a weekly data refresh cycle, re-verification becomes unnecessary - every record stays current automatically.

Is there a reliable way to verify emails on catch-all domains?

Not with standard verification alone. Since catch-all servers return 250 OK for every address, no tool can definitively confirm a specific mailbox exists. Your best options: use a verification service with advanced catch-all scoring, cross-reference the address against known patterns at the company, or start with a data provider that handles catch-all resolution through multi-step verification before delivering results to you.

B2B Data Platform

Verified data. Real conversations.Predictable pipeline.

Build targeted lead lists, find verified emails & direct dials, and export to your outreach tools. Self-serve, no contracts.

  • Build targeted lists with 30+ search filters
  • Find verified emails & mobile numbers instantly
  • Export straight to your CRM or outreach tool
  • Free trial — 100 credits/mo, no credit card
Create Free Account100 free credits/mo · No credit card
300M+
Profiles
98%
Email Accuracy
125M+
Mobiles
~$0.01
Per Email