Every marketer has sent a campaign and watched the bounce rate climb higher than expected. It's a frustrating experience — and a preventable one. Email verification is the process of confirming that an email address is valid and capable of receiving messages before you actually send to it.
This guide explains what email verification does, how it works under the hood, and what you should do with the results.
Why email addresses go bad
An email list is not a static asset. People change jobs, abandon old inboxes, use throwaway addresses to sign up for things they don't care about, and misspell their own email addresses in registration forms. Industry data consistently shows that email lists decay at roughly 20–25% per year — meaning a list you built two years ago could have a quarter of its addresses pointing nowhere.
When you send to addresses that don't exist, mail servers reject the messages and report them back as hard bounces. A high hard bounce rate tells inbox providers like Gmail and Outlook that your sending practices are poor — and they respond by filtering your future messages to spam, or blocking your sending domain entirely. Email verification stops this cycle before it starts.
How email verification works
A complete verification check has three layers, each catching a different class of problem.
1. Syntax validation
The first check is simple: does the address conform to the rules of RFC 5321? This catches typos like user@domain (no TLD), user@@domain.com (double @), or user @domain.com (space in the address). Syntax errors account for a small but real fraction of list problems.
2. Domain and MX record lookup
Next, the verifier looks up the DNS records for the email's domain. Specifically, it checks for MX records — Mail Exchanger records that tell the internet where to deliver mail for that domain. If a domain has no MX records, no mail server is configured to receive messages, and any email sent to that domain will bounce. This check catches addresses like user@a-domain-that-no-longer-exists.com.
3. SMTP handshake verification
The most thorough check connects to the domain's mail server and simulates the beginning of an email delivery without actually sending anything. The verifier opens a connection, provides a sender address, and asks whether the recipient address is accepted. The mail server responds — usually with a 250 (valid) or 550 (no such user) status code. This is called an SMTP handshake.
SMTP verification catches addresses that pass syntax and MX checks but still don't exist — for example, definitely.not.real@gmail.com. Gmail's servers will confirm that no such mailbox exists.
Understanding verification results
Every email address verified will fall into one of three categories:
Valid — The address exists, the domain is active, and the mail server confirmed that messages can be delivered. Safe to send.
Invalid — The address failed at one or more stages: syntax error, no MX records, or the mail server explicitly rejected it. Remove these from your list before sending.
Unknown / Unverifiable — The address couldn't be confirmed either way. This category covers several scenarios:
- Catch-all addresses — Some mail servers accept all messages regardless of whether the specific mailbox exists, so a 250 response doesn't confirm validity. These addresses can't be verified by SMTP alone.
- Temporary blocks — Some mail servers (particularly high-volume providers) temporarily block verification requests from unfamiliar IP addresses, a practice called greylisting.
- MX errors — The domain has MX records but its mail server is unreachable at the time of the check.
Unknown addresses are a judgment call. Many senders choose to send to them cautiously, monitor bounce rates, and suppress addresses that bounce.
What email verification doesn't do
It's worth being clear about the limits:
- It doesn't verify inbox activity. An address can be valid and receive your email — but if the inbox hasn't been opened in two years, the subscriber isn't engaged.
- It doesn't guarantee deliverability. Your reputation, content, and sending patterns all affect whether mail lands in the inbox.
- It can't verify every address. Catch-all domains, temporary server errors, and deliberate anti-verification measures mean some addresses will always land in the unknown category.
The cost of not verifying
The most common question is whether email verification is worth the time and cost. The answer depends on what "not verifying" actually costs.
Sender reputation damage is the most significant risk. Gmail uses a rolling spam and bounce rate to determine your sender score. Exceed 0.3% hard bounces and you'll see delivery problems. Once your domain reputation drops, every email — not just the campaign that caused the problem — is affected. Rebuilding domain reputation can take weeks of careful sending.
ESP account suspension is a real risk for lists that exceed bounce rate thresholds. Most email service providers enforce their own limits (often lower than Gmail's 0.3%) and will suspend or terminate accounts that consistently exceed them. Migrating to a new ESP doesn't fix the underlying list problem — it just starts the clock over.
Wasted sending budget is more concrete. If your plan charges per email sent, sending to thousands of invalid addresses is money with no return. Verification costs a fraction of a cent per address; each invalid address you catch saves you the cost of the send plus the potential reputation damage.
False metrics accumulate when invalid addresses inflate your nominal list size. If 20% of your list is undeliverable, your open rate is calculated against a smaller actual audience than your list size suggests — making it appear lower than it is among real subscribers.
Real-time vs. bulk verification
Email verification can be applied at two different points in the email lifecycle, and the best programs use both.
Bulk verification
Bulk verification processes an existing list — you upload a CSV, the service checks every address, and you download categorised results. This is the right approach when:
- You're activating a list that hasn't been mailed in a while
- You've imported contacts from an external source (CRM, event registration, partnership)
- You're doing a quarterly or annual list audit
- You've purchased or acquired a list and need to assess its quality
Bulk verification processes thousands of addresses in minutes. Most verification services handle batches of any size.
Real-time verification at the point of capture
Real-time verification checks each address as it's entered — typically at signup forms, checkout, or CRM entry. The API returns a result in 1–2 seconds, before the form is submitted. Invalid addresses are rejected immediately; valid ones proceed.
This is the more powerful intervention because it prevents invalid addresses from entering your list in the first place. Once an address is in your database and has been sent to, the bounce has already affected your sender reputation. Real-time verification at capture means those bounces never happen.
The tradeoff is implementation effort: you need to integrate an API into your forms rather than simply uploading a file. For high-volume signup forms, checkout flows, or CRM entry points, it's worth it.
What happens during an SMTP handshake
The technical process is worth understanding because it explains both what verification can and can't do.
When a verification service checks an address, it does the following without sending an actual message:
- DNS lookup — look up the MX records for the domain
- TCP connection — open a connection to port 25 on the mail server
- EHLO greeting — introduce itself with an EHLO command
- MAIL FROM — specify a sender address
- RCPT TO — ask the server whether the recipient address is accepted
- QUIT — close the connection
The server's response to RCPT TO is what determines the result:
- 250 — the server accepted the address (valid)
- 550 — the server rejected the address (invalid)
- 4xx — a temporary error (retry later / unverifiable)
The limitation is that some servers don't give honest answers. A catch-all server will respond 250 to any RCPT TO regardless of whether the mailbox exists. Some servers respond 250 to everything as a spam prevention measure, making individual verification impossible. These cases are reported as unverifiable.
SMTP codes you'll encounter
| Code | Meaning | Verification result | |---|---|---| | 250 | Recipient OK | Valid (unless catch-all) | | 550 | No such user | Invalid | | 551 | User not local | Invalid | | 553 | Mailbox unavailable | Invalid | | 421 | Service unavailable (temp) | Unverifiable | | 450 | Mailbox unavailable (temp) | Unverifiable | | 452 | Insufficient storage | Unverifiable |
When to verify
The best practice is to verify at two points:
- Before your first send to any new list — especially lists you've purchased, collected through offline channels, or haven't mailed in more than six months.
- On an ongoing basis — run a re-verification pass on your full list every six to twelve months, and remove addresses that bounce in the meantime.
Some teams also add real-time verification at the point of signup, checking addresses as soon as someone fills in a form. This prevents invalid addresses from entering the list in the first place.
How to choose a verification service
Not all verification services are the same. When evaluating one, look for:
Catch-all identification — a service that can't distinguish catch-all addresses from verified valid ones will inflate your valid count with unconfirmed addresses.
Disposable email detection — flagging addresses from known temporary email services like Mailinator or Guerrilla Mail keeps deliberately-placed junk off your list.
Role-based address detection — identifying shared inboxes like info@, admin@, and support@ lets you decide how to handle them rather than having them silently mix into your marketing list.
Clear result categories — results should be clearly labelled (valid / invalid / catch-all / disposable / role-based) so you can act on them, not just see a single "deliverable" percentage.
Speed and batch size — large lists need fast turnaround. A service that takes hours to process 50,000 addresses creates friction in your workflow.
Start with a clean list
Email verification is the most direct investment you can make in your deliverability. Cleaner lists mean fewer bounces, better sender reputation, and more messages reaching real inboxes.
StopBouncing verifies email addresses in bulk — upload your list, download the results, and send with confidence.
Ready to clean your email list?
Verify thousands of addresses in minutes. No subscription — pay only for what you use.