Skip to content
ColdReach

How to verify email addresses before a cold email campaign

Every address on a cold email list is a small bet. A valid address gives you a chance at a reply. An invalid one bounces, and a steady stream of bounces tells mailbox providers that you do not look after your list. Verification is how you stop making bad bets before they cost you. This guide explains each check, what it can and cannot tell you, how to treat catch-all and role addresses and when to verify again.

Analyst sorting printed contact cards into valid and invalid piles

Why verification comes before every campaign

Bounces hurt in three ways. They waste sends you could have spent on real prospects. They distort your reporting, because a sequence with many bounces looks weaker than it is. Most importantly, they damage sender reputation. Receiving servers keep track of how often a sender hits addresses that do not exist, and a high rate is a classic sign of a bought or scraped list.

Business contact data also decays. People change jobs, companies rebrand and domains expire. An address that was valid when it entered your database can bounce months later. Verification is not a one-time cleanup. It is a step in the workflow, right before a contact enters a sequence.

Start with the syntax check

The first check is the cheapest. It confirms the address is shaped like an email address: a local part, a single @ and a domain with a valid ending. It catches typos, stray spaces, missing characters and pasted text that was never an address in the first place. Syntax checks also normalize case and strip invisible characters that sneak in from spreadsheets.

A pass here proves very little on its own. It only means the address could exist.

Confirm the domain is real

Next, confirm the domain is real and active. Does it resolve in DNS? Is it a known disposable mail domain? Is it a common misspelling of a large provider or of the company's actual domain? A domain that does not resolve means every address on it will bounce, so there is no reason to go further.

Check the MX records

A domain can host a website and still have no way to receive mail. The MX check looks up the domain's mail exchanger records, which name the servers that accept email for it. No MX records, or records pointing nowhere, means delivery will fail. This check also tells you which kind of mail system the domain uses, which matters for the next step.

Ask the server about the mailbox

The final check asks the receiving mail server whether this specific mailbox exists, without sending a message. A careful verifier opens a connection, introduces itself and asks about the recipient, then reads the server's answer. A clear rejection means the mailbox does not exist. A clear acceptance usually means it does.

This step needs to be done politely and at a measured pace. Hammering a server with lookups gets the checking system blocked and produces unreliable results. It is one reason most teams use a dedicated email verifier rather than scripts of their own.

Catch-all domains

Some domains accept mail for any address, real or not, and sort it out later. These are called catch-all or accept-all domains. A mailbox check on a catch-all domain always looks positive, so it cannot confirm that a particular person exists.

Treat catch-all results as risky rather than valid. Options include sending to them only after your valid contacts, sending to them from your most established mailbox, confirming the address pattern against other people at the same company you have already reached successfully, or leaving them out of the first weeks of a new mailbox's warmup entirely.

Role addresses

Addresses like info@, sales@, support@ and admin@ belong to a function, not a person. They are often read by several people, sometimes filtered aggressively and more likely to produce complaints, because nobody in particular agreed to anything. For personal B2B outreach, flag role addresses and prefer a named decision maker. If a role address is all you have, consider whether the message suits a shared inbox at all.

Other results to flag

  • Disposable or temporary domains, which should never enter a business sequence.
  • Free consumer mailbox domains, when your outreach is meant for work addresses only.
  • Unknown results, where the server did not answer clearly. Recheck later instead of guessing.

When to verify again

Verification has a shelf life. Re-verify in these situations.

  • Right before a contact enters a new sequence, if the last check is more than a few weeks old.
  • After importing a list from a CSV file, a partner or an older campaign.
  • When a contact's company changes domain or rebrands.
  • When a sequence suddenly shows bounces on addresses that passed earlier, which may point to a stale segment.
  • Before reusing an old list for a new offer.

Keep the result and the check date on every record, so anyone looking at a contact can see how fresh the verification is.

Handle bounces after you send

Even a verified list produces an occasional bounce. Treat every hard bounce as final: suppress the address and do not try again. Watch soft bounces, such as a full mailbox or a temporary error, and stop after a few failed attempts. If bounces climb on one mailbox, pause it and look at the list before you blame the copy. Our email deliverability checklist explains how bounces fit with authentication and volume limits.

Verification built into the workflow

In ColdReach every contact goes through syntax, domain, MX and mailbox checks before it can join a sequence, and risky and catch-all addresses are flagged instead of quietly passed. Contacts found with the email finder are verified the same way. Each plan includes a monthly number of verifications, shown on the cold email software pricing page, and verifications count as used once they run, so planning around fresh, targeted lists goes further than re-checking everything at once.

A clean list is a sending advantage

Verification is unglamorous, and it is one of the few steps that improves every number downstream. Check syntax, domain, MX and mailbox before each campaign, treat catch-all and role addresses with care, re-verify when data ages and suppress every hard bounce. Your domain will thank you for it.

Write my emails