Email Verifier for Smartlead Users: Clean Lists Before Import
Smartlead doesn't verify email addresses before sending. Here's how to run SMTP and M365 verification on your prospect list before it enters any campaign.
Smartlead is one of the most capable cold-email senders available in 2026 — multi-inbox rotation, AI-powered sending schedules, robust sequence management, and detailed campaign analytics. It is built to maximise deliverability and reply rates at scale.
What Smartlead is not built to do is verify whether the addresses in your campaign actually exist before the first email goes out.
That is not a criticism. Verification is a different problem than sending. But the gap between them is where bounce rates spike and sender accounts take damage. Closing that gap before a campaign loads into Smartlead is one of the highest-leverage things you can do for cold outreach performance.
Why Smartlead cannot solve this on its own
Smartlead tracks bounces, processes unsubscribes, and can pause sending when bounce thresholds are hit. But by the time Smartlead is responding to a bounce event, the damage is already done:
- The bounce has been recorded against your sending domain
- The email provider at the receiving end has logged a delivery failure from your IP
- If enough bounces accumulate, inbox providers start treating your domain as less trustworthy
- Smartlead's inbox rotation helps distribute sending, but it cannot undo reputation signals that have already been sent
The fix is to remove bad addresses before the first step-1 email fires. That means verification before import.
What you are actually verifying
When people say "email verification," they mean different things. Here is the stack that matters for cold outreach specifically:
Surface checks (useful but not sufficient)
Syntax validation — is the address structurally valid? Catches malformed rows. Does not tell you if the mailbox exists.
Domain and MX records — does the domain exist and have mail servers configured? A reliable negative signal: no MX = definitely undeliverable. But passing MX tells you nothing about individual mailboxes.
Typo detection — gmial.com, outloook.com. Data entry errors from prospect research tools.
Disposable/role detection — throwaway inbox services and role addresses (info@, noreply@, contact@). Role addresses are especially important for cold outreach — they reach shared inboxes, not individuals, and can generate spam complaints from team inboxes that monitor for cold solicitation.
SMTP mailbox probing (the essential layer for cold outreach)
This is what actually tells you whether the address exists. MailCull's engine opens a direct SMTP connection to the receiving mail server, identifies itself with a properly configured EHLO hostname (matching PTR and A records — required to get through modern anti-spam filters), and issues RCPT TO for each address.
The server's response:
- 250 OK — the server is willing to accept mail for this address. Deliverable.
- 550 User unknown (or similar 5xx) — the mailbox does not exist. This is the hard bounce you are trying to avoid.
- 450 / 452 — temporary deferral. Greylisting or rate-limiting. The verdict is inconclusive — mark as risky and decide whether to include.
For cold-outreach purposes, every 550 you catch before import is a bounce event prevented.
Microsoft 365 HTTP enumeration (the layer that makes B2B lists reliable)
Cold outreach targets are overwhelmingly business email addresses, and a large share of those are on Microsoft 365. This creates the most significant accuracy problem in cold-outreach list verification.
Microsoft's Exchange Online Protection layer accepts RCPT TO for any address on a tenant — including completely non-existent ones. An SMTP probe against an M365 domain returns 250 OK for a made-up address and 250 OK for a real one. They look identical to a standard verifier.
MailCull handles this with an HTTP cascade that uses Microsoft's own authentication endpoints:
- GetUserRealm — confirms the domain routes to M365
- GetCredentialType — checks whether that specific username has an active M365 account
- Autodiscover v1 — cross-references account presence
When the cascade says the account exists and SMTP confirms it, confidence is high. When the cascade says the account does not exist but SMTP returned 250 OK, that address is marked risky — it looks deliverable at the SMTP level but M365 says no account. That is exactly the false-positive that generates corporate hard bounces in cold outreach.
For a B2B prospect list from Clay, Apollo, LinkedIn, or ZoomInfo, a meaningful fraction of addresses are on M365 tenants. Getting this right is the difference between a 2% bounce rate and a 6% bounce rate on that list.
Catch-all detection
Some corporate mail servers accept any RCPT TO regardless of whether the mailbox exists. A probe returns 250 OK for [email protected]. These are catch-all domains. Individual mailbox verification is impossible for these — which is why MailCull flags them as risky rather than deliverable.
In a cold-outreach context, catch-all addresses are not automatically bad — they often do receive mail. But the deliverability confidence is lower than a confirmed individual mailbox, so they belong in a conservative batch or a separate sending test.
The workflow: MailCull + Smartlead
Here is the specific sequence that keeps your Smartlead campaigns clean:
Step 1: assemble the prospect list
Export your contacts from wherever they live — Clay, Apollo, Phantombuster, LinkedIn Sales Navigator, manual research, a purchased database. Get them into a CSV.
You do not need a clean single-column file. MailCull handles multi-column exports with names, companies, titles, LinkedIn URLs, and any other fields alongside the email addresses.
Step 2: run verification in MailCull
Upload the CSV to Verify List. The full check stack runs across every address. Results group into four statuses:
- Deliverable — load these into Smartlead
- Risky — decide based on the specific reason (see below)
- Undeliverable — remove. These are confirmed bounces.
- Unknown — treat like risky
Free plan: 1,000 rows/month, no credit card. Pro: 100,000 validation credits/month at $9/month. Scale: 500,000 validation credits/month at $49/month.
Step 3: triage the risky addresses
For cold outreach, the conservative call is to remove risky. But the reason matters:
| Risky reason | What it means | Cold-outreach call |
|---|---|---|
smtp_catchall | Catch-all domain — individual mailbox uncertain | Test in a small batch of 20-30; watch bounce rate |
m365_smtp_disagreed | HTTP cascade and SMTP gave conflicting signals | Remove from cold sequence |
smtp_greylisted | Server deferred the probe — temporary | Usually safe to include; monitor first sends |
| Role address | info@, contact@ — shared inbox | Remove from cold sequence |
Step 4: export the clean segment and import into Smartlead
Export the deliverable contacts from MailCull, preserving all columns. Import into Smartlead as normal. Because the list has been through a verification pass, the first-send bounce rate should be materially lower than an unverified list from the same source.
What to expect
On a typical prospect list from a good source (Clay enrichment, Apollo export, manual LinkedIn research), expect:
- 80-90% deliverable on a fresh list from a high-quality source
- 70-80% deliverable on a list sourced from multiple tools with varying freshness
- 50-65% deliverable on a purchased or aged list
If verification returns less than 70% deliverable, that is a signal about the source quality — worth investigating before you invest sending infrastructure in that prospect set.
The evidence chain for auditing source quality
Every verified address in MailCull carries a reason code in its evidence chain. After a verification run, you can look at the distribution of reason codes across the undeliverable and risky buckets:
- Lots of
smtp_user_unknown→ the source has real but stale data (employees who left companies) - Lots of
m365_no_account→ the source is generating false-positives for M365 domains - Lots of
dns_no_mx→ the source has typos or fabricated domains - Lots of
smtp_catchall→ the source includes many SMB and startup domains that run catch-all configurations
That breakdown tells you which sourcing tools are worth paying for and which are generating noisy data.
Combining with Smartlead's own settings
A few Smartlead settings complement the verification step:
Bounce rate threshold — Smartlead can pause sequences when a campaign hits a bounce rate limit. Even with verification, set this conservatively (2-3%) as a safety net.
Inbox rotation warmup — verified lists allow you to be more aggressive with warmup because you know you are not sending to addresses that will immediately bounce. The warmup process is about reputation building, not about surviving a bad list.
Unsubscribe monitoring — role addresses and shared inboxes sometimes generate unsubscribes or spam complaints even if the email was delivered. Removing them before import reduces this risk.
---
You came here to protect your Smartlead sending infrastructure from bad lists. MailCull verifies every address at the SMTP level, handles the M365 false-positives that corrupt B2B list accuracy, and shows the evidence behind every verdict.
Verify your Smartlead prospect list in MailCull — free up to 1,000 rows →
Start with 500 free validation credits. No credit card.
Both Free and Pro run the same scan engine — full SMTP probe, MX lookup, typo, disposable, domain checks, and the evidence chain on every verdict. The difference is the monthly credit pool (Free=500, Pro=100,000) plus Pro's API and MCP access.