How to Verify Your Email List Before Sending Cold Email (Step by Step)
By Puzzle Inbox Team · Apr 5, 2026 · 10 min read
Sending cold email to an unverified list is like lighting money on fire. Here's the step by step verification workflow that keeps bounce rates under 2%.
Why You Must Verify Your Email List Before Sending
Every time you send a cold email to an invalid address, your sender reputation takes a hit. Send enough invalid emails (anything over a 2 to 3% bounce rate), and email providers like Google and Microsoft start treating all your emails as suspicious. Your domain reputation drops. Your inbox placement drops. And eventually, even your emails to valid addresses end up in spam.
I've seen teams burn through domains in weeks because they skipped email verification. They bought a list or scraped emails from LinkedIn, loaded them into their sending platform, and hit send. Bounce rate came back at 8 to 12%. Within a few days, their inbox placement cratered. It took them months to recover, and some of those domains never recovered at all.
The fix is simple: verify your email list before sending. Every time. No exceptions. Here's the step by step workflow I use and recommend to every client.
Step 1: Export Your Prospect List
Before you can verify, you need your raw list. Where this comes from depends on your prospecting workflow:
- Apollo.io: Export contacts directly from saved searches. Apollo provides email addresses but they aren't always accurate, especially for smaller companies and recent job changers.
- LinkedIn Sales Navigator + email finder: Export prospects from Sales Navigator using a tool like Evaboot or PhantomBuster, then run the list through an email finder (Hunter.io, FindyMail, or Apollo's built in enrichment).
- Clay: Build prospect lists with multiple data source enrichment. Clay pulls from multiple providers and cross references, which tends to produce higher quality email data.
- Purchased lists: I don't recommend buying lists, but if you do, verification is absolutely mandatory. Purchased list quality varies wildly, and bounce rates of 15 to 25% are common without verification.
Export to CSV. Make sure you have at minimum: first name, last name, email address, company name, and job title. You'll need these fields for personalization later.
Step 2: Run Through a Verification Tool
Email verification tools check each address against the recipient's mail server to determine if the address exists, is valid, and can receive email. This happens without actually sending an email.
The best verification tools for cold email:
- ZeroBounce: Industry leader with high accuracy. $16 per 1,000 verifications. Includes catch all detection, disposable email detection, and abuse/spam trap identification.
- NeverBounce: Reliable verification with real time API. Pay as you go starting at $8 per 1,000. Good for teams integrating verification into automated workflows.
- MillionVerifier: Budget option at $2.90 per 10,000 verifications. Accuracy is slightly lower than ZeroBounce but the price makes it attractive for high volume operations.
Upload your CSV to your chosen verification tool and run the full verification. This typically takes 10 minutes to a few hours depending on list size.
Step 3: Remove Invalid, Disposable, and Role Based Addresses
After verification, your tool will categorize each email. Here's how to handle each category:
- Valid: Keep. These addresses exist and can receive email.
- Invalid: Remove immediately. These addresses don't exist and will hard bounce.
- Disposable: Remove. These are temporary email addresses (Guerrilla Mail, Mailinator) that real prospects don't use for business.
- Role based: Remove. Addresses like info@, sales@, support@, admin@ are not personal inboxes. Cold email sent to role based addresses has near zero reply rates and higher spam complaint rates.
- Spam trap: Remove immediately. Sending to known spam traps will blacklist your domain. If your list has spam traps, your data source is compromised.
- Unknown/Unverifiable: Handle with caution. These are addresses where the verification tool couldn't determine validity. I recommend removing them unless your list is very small and you need the volume.
Step 4: Handle Catch All Domains
Catch all domains are servers configured to accept email to any address at that domain, whether or not the specific mailbox exists. A catch all domain will accept email to john@company.com, fakename123@company.com, and anything else you send. Your verification tool will flag these as "catch all" or "accept all."
The problem: you can't tell if the specific person's email is real. The domain accepts everything, so verification can't distinguish valid addresses from invalid ones.
My approach: send to catch all addresses, but separate them into a dedicated campaign and monitor bounce rates closely. If your catch all segment bounces above 5%, reduce volume or remove the worst performing domains. Some cold email operators skip catch all entirely. I think that's too conservative since roughly 20 to 30% of corporate domains are catch all, and you'd be cutting a significant chunk of your addressable market.
Step 5: Check for Duplicate Emails
Duplicate emails in your list mean the same person gets the same email multiple times. This looks spammy, annoys the prospect, and wastes sending capacity. It happens more often than you'd think, especially when combining prospects from multiple data sources.
Check for duplicates in your spreadsheet before uploading to your sending platform. In Google Sheets, use conditional formatting to highlight duplicates in the email column. In Excel, use Remove Duplicates from the Data tab. Most sending platforms (Instantly, Smartlead) also have built in deduplication, but catching it before upload is cleaner.
Step 6: Cross Reference Against Suppression and Unsubscribe Lists
Before you send, check your new list against:
- Your unsubscribe list: Anyone who previously unsubscribed from your emails must not receive another cold email. This is both a legal requirement (CAN SPAM, GDPR) and a practical one. Emailing someone who unsubscribed is the fastest way to get a spam complaint.
- Your bounce list: Addresses that hard bounced on previous campaigns should never be contacted again from any domain.
- Your "do not contact" list: Prospects who explicitly asked not to be contacted, competitors, existing customers, and anyone else your team has flagged.
Your sending platform should maintain these suppression lists automatically. But if you're using a new platform or switching tools, make sure you import your historical suppression data before launching.
The 2% Bounce Rate Threshold
This is the number that matters most. Keep your bounce rate under 2%. Here's what happens at different bounce rate levels:
- Under 2%: Healthy. Email providers see normal sending behavior. No reputation impact.
- 2 to 5%: Warning zone. Your domain reputation starts to take hits. Some emails may begin landing in spam instead of inbox.
- 5 to 10%: Serious damage. Your sending reputation is degrading rapidly. Inbox placement drops significantly. You need to stop sending, clean your list, and let your domain recover.
- Over 10%: Critical. Your domain is likely blacklisted or flagged by major providers. Recovery takes weeks to months. You may need to retire the domain entirely.
The Cost Math: Verification vs Burned Domains
Verification costs $3 to $16 per 1,000 emails depending on the tool. For a 5,000 contact list, that's $15 to $80. A burned sending domain costs you the domain itself ($10 to $15), the inboxes on that domain ($3 to $5/inbox/month for 3 inboxes), and most importantly, weeks of warmup time to get a replacement domain ready. Not to mention the lost pipeline while your domain is down.
Use our inbox calculator to see how many inboxes and domains you need. Then verify every list before it touches any of those inboxes.
Verification Workflow Summary
- Export prospect list to CSV from your data source
- Upload to ZeroBounce, NeverBounce, or MillionVerifier
- Remove all invalid, disposable, role based, and spam trap addresses
- Separate catch all addresses into a dedicated monitored campaign
- Deduplicate the list
- Cross reference against suppression, unsubscribe, and do not contact lists
- Verify bounce rate stays under 2% after sending
This workflow takes 30 minutes to an hour per list. Do it every time. No shortcuts. The cost of skipping verification is always higher than the cost of doing it.