How-To Guides9 min read·Updated 2026-04-30

How to Verify Emails Before Sending (Avoid Bounces)

Bounce rate above 2% damages your sender reputation. Above 3%, you get blacklisted. Here is the exact workflow to verify every list before it touches a campaign.

RB

Rees Bayba

Founder, Astra GTM

TL;DR

  • Bounce rate above 2% starts damaging sender reputation. Above 3%, major email providers begin blacklisting your sending domain.
  • Email verification checks four things: SMTP mailbox existence, domain validity, catch-all detection, and spam trap / disposable address detection.
  • Best tools: ZeroBounce for catch-all detection and spam trap scoring, BounceBan for catch-all scoring with a 97+ threshold, MillionVerifier for cheapest bulk verification at $0.0009/email.
  • The workflow: export your list, run through a verifier, filter to deliverable only, apply catch-all score threshold, then import to campaign.
  • Lists go stale at 20-25% per year. Re-verify any list older than 3 months before sending.

Email verification is the single most important step most outbound teams skip. The math is straightforward: a 3% bounce rate gets your sending domain flagged by Gmail and Outlook. Once flagged, your deliverability drops across the entire domain -- not just the campaign that triggered it. Verification is the gate between your list and your inbox placement.

Why Bounce Rate Matters

Inbox providers use bounce rate as a spam signal. A hard bounce (the email address does not exist) tells the provider that you are either buying lists or not maintaining your data. After two or three campaigns with elevated bounces, providers start sending your mail to spam -- or blocking it entirely. The threshold is lower than most people think.

  • Under 1% bounce rate: healthy. Inbox providers treat you as a legitimate sender.
  • 1-2% bounce rate: caution zone. No immediate action required, but investigate the source.
  • 2-3% bounce rate: active damage to sender reputation. Your deliverability starts dropping before you notice it in open rates.
  • Above 3% bounce rate: your domain gets flagged. Recovery takes 60-90 days of sending from clean infrastructure.

What Email Verification Actually Checks

Verification is not a simple valid/invalid check. A good verification service runs four distinct checks on every address:

  • SMTP verification: The verifier connects to the mail server and checks whether that specific mailbox accepts messages. This is the core check -- it tells you whether the address is live.
  • Domain validation: Checks that the domain has active MX records and that its mail server is responding. An email at a domain with no MX records will always bounce.
  • Catch-all detection: Some domains accept every email sent to them regardless of whether the mailbox exists. These are catch-all domains. The SMTP check returns deliverable, but the email may still bounce after sending. Catch-all detection flags these domains so you can apply a separate threshold.
  • Spam trap and disposable detection: Spam trap addresses look like real emails but are operated by blocklist providers to identify senders who do not maintain clean lists. Disposable addresses come from services like Mailinator or Guerrilla Mail. Both should be filtered before any send.
20-25%
annual email decay rate as B2B contacts change jobs

A list built 12 months ago has roughly 1 in 4 addresses that are now invalid, forwarding to a new employer, or bouncing. Re-verify any list older than 3 months before sending.

Verification Services and When to Use Each

There are four services worth using for B2B outbound verification. Each has a different strength:

ServiceCost per emailBulk pricingBest featureCatch-all handling
ZeroBounce$0.008Volume discounts from 50K+Best catch-all detection + spam trap scoringScores catch-alls -- use score threshold to decide
NeverBounce$0.008Volume discounts from 10K+Fastest processing, strong integrationsFlags catch-alls but no detailed scoring
BounceBan$0.008Volume plans availableSpecialized catch-all scoring with 97+ threshold recommendationStrongest catch-all score -- use score >= 97 as your gate
MillionVerifier$0.0009Cheapest bulk optionBest price-per-email at high volumeFlags catch-alls, minimal scoring detail

For most B2B outbound programs: use BounceBan as your primary verifier if catch-all domains are a significant part of your list (common in enterprise accounts). Use ZeroBounce if you need the best spam trap scoring. Use MillionVerifier for large batches (100K+ addresses) where cost per email matters more than granular scoring.

The Verification Workflow

  1. 1Export your contact list to CSV. Include first name, last name, company, and email. You only need email for verification, but you will want the other fields when you re-import.
  2. 2Upload to your verification service. Most services accept CSV or let you paste emails directly. For batches over 10,000, use bulk API upload to avoid timeouts.
  3. 3Wait for results. Single address verification returns in seconds. Bulk lists take 30 minutes to a few hours depending on size and the service's queue.
  4. 4Filter to deliverable only. Remove any address where the result is not explicitly 'deliverable' or 'valid'. Unknown, risky, accept-all without a passing score -- all go out.
  5. 5Apply catch-all score threshold. For addresses on catch-all domains, only keep those with a catch-all score of 97 or higher if you are using BounceBan, or a comparable high-confidence score if using ZeroBounce.
  6. 6Import the filtered list to your campaign. The filtered list -- deliverable only, passing catch-all threshold -- is what enters your sequencing tool.

Handling Catch-All Domains

Catch-all domains are the trickiest part of B2B email verification. The domain's mail server accepts every inbound message, so SMTP verification always returns deliverable -- even if the specific mailbox does not exist. When you actually send, the message may bounce at delivery or get silently discarded. You cannot know without sending.

There are three options for handling catch-all domains, in order of caution:

  • Skip all catch-alls: Safest for inbox protection. You lose a portion of your list (often 20-40% of enterprise addresses are on catch-all domains), but your bounce rate stays clean.
  • Use BounceBan's catch-all score and only send to score 97+: BounceBan does additional signals analysis on catch-all addresses -- historical delivery patterns, domain age, MX record details -- and produces a confidence score. A score of 97 or higher indicates the specific mailbox is very likely real. This is the right approach for most B2B programs where list size matters.
  • Send a small test batch first: Send 20-30 addresses from the catch-all domain, wait 48 hours, check the bounce rate. If it is under 1%, the rest of the catch-all list from that domain is likely safe. This works but is manual and does not scale.

How Often to Re-Verify

Email lists go stale faster than most teams expect. In B2B, people change jobs, companies get acquired, email addresses get deactivated. The 20-25% annual decay rate means a list built 6 months ago has 10-12% invalid addresses. A list from 18 months ago may have 30%+ stale addresses.

  • Lists under 30 days old: Verify once before sending. No need to re-verify if you send within the same month.
  • Lists 1-3 months old: Re-verify before any new campaign send. Decay at this age is modest but real.
  • Lists 3-6 months old: Always re-verify. Expect 5-10% of addresses to have gone stale.
  • Lists over 6 months old: Re-verify and expect to lose 10-20% of the list. Factor this into your pipeline math before assuming list size equals send volume.
  • Ongoing campaigns: If a campaign has been paused for 60+ days, re-verify the unsent portion before resuming.

Frequently asked questions

How often should I verify my email list?

Re-verify any list older than 3 months before sending. Lists go stale at 20-25% per year -- about 2% per month. A list from 6 months ago has an estimated 10-12% invalid addresses. For ongoing campaigns, re-verify the unsent portion if the campaign has been paused for 60+ days.

What is a catch-all domain?

A catch-all domain is configured to accept all inbound email regardless of whether the specific mailbox exists. When you send to john.doe@company.com on a catch-all domain, the server says 'accepted' even if John Doe does not have an account there. The email may bounce later or get silently discarded. You cannot detect catch-alls with SMTP verification alone -- you need a verification service that does catch-all detection and scoring.

Should I skip all catch-all addresses?

Not necessarily. In B2B outbound, 20-40% of enterprise company addresses are on catch-all domains. Skipping all of them can significantly reduce your sendable list. A better approach: use BounceBan's catch-all score and only include addresses scoring 97 or higher. This keeps most of your real contacts while filtering the addresses most likely to bounce.

Which verification service is best?

It depends on your use case. BounceBan gives the best catch-all scoring with a clear threshold (97+) that most B2B teams can apply directly. ZeroBounce has the best spam trap detection and detailed scoring. NeverBounce has the fastest processing time and strong tool integrations. MillionVerifier is cheapest for very large volumes (100K+ addresses) where cost matters more than granular scoring.

What score is safe to send to?

For BounceBan, the standard threshold is score >= 97 AND result == 'deliverable'. For ZeroBounce, use their 'valid' status plus a quality score of 9+. Most verification services have their own scoring -- check the documentation for the specific threshold they recommend for low-bounce sending. Do not assume a 'deliverable' result alone is sufficient if the service also returns a score below their recommended threshold.

What should I do with risky or unknown emails?

Do not send to them. 'Risky', 'unknown', and 'accept-all without a passing score' are all categories where you cannot confirm the mailbox is real. The expected bounce rate from these categories is high enough to damage sender reputation if sent at volume. Set them aside. If the contact is high-value, find an alternative email or reach out via LinkedIn instead.

Want this built for your team?

We implement these systems end-to-end. First sends within 14 days.