How to verify an email address before sending (free methods)
Syntax, MX and SMTP checks explained, with the free commands and tools to run them and what each result means for a cold email list.
- Written by
- Mradul, Engineering & Product, EtherLabz
- Length
- 8 min read
- Filed under
- Tutorial
To verify an email address before sending, run three checks in order: the syntax is valid, the domain has a mail server (an MX record), and that mail server accepts the specific mailbox (an SMTP check). The first two are free and take seconds from your own computer. The third is best left to a verification service, and several have a free tier.
Score lands on every lead, free
Deterministic 0–100 Quality Score on every result — no extra credit, no extra wait. Sort to High Quality before you pay 1 credit for an enrichment.
Native MCP server
Remote endpoint for Claude.ai (OAuth 2.1) + stdio package for Claude Desktop, Cursor, Claude Code. Same tools as the REST API.
These are the two axes where LocalLeads is genuinely different. Everything else — search, enrichment, export — is table stakes. Quality Score · MCP
This guide explains what each check proves, how to run the free ones yourself, and why a home-made SMTP check is usually a bad idea. It is written for people about to send cold email to a list they built or bought, who want to avoid bounces.
What email verification means
Email verification is the process of checking that an address can receive mail without sending a message to it. It is a stack of separate checks, and each one answers a different question.
| Check | What it proves | What it cannot tell you | Free way to run it |
|---|---|---|---|
| Syntax | The address is formed correctly | Whether the domain or mailbox exists | A spreadsheet formula |
| Domain (MX record) | The domain has a mail server and can receive email | Whether this exact mailbox exists | dig or nslookup |
| Mailbox (SMTP) | The mail server says it will accept mail for this address | Whether a person reads it, or whether you will land in the inbox | A verifier's free tier |
| Catch-all detection | The server accepts every address at the domain | Which of those addresses are real | A verifier's free tier |
| Role and disposable flags | The address is a shared inbox or a throwaway | Whether that matters for your campaign | Read the part before the @ |
No check on this list predicts inbox placement. A verified address can still send your message to spam if your domain is new, your authentication is missing or recipients mark you as junk.
Free check 1: Syntax
A syntax check catches typos and broken exports: a missing @, a space in the middle, a domain with no ending, gmial.com where gmail.com was meant.
In Google Sheets, put your addresses in column A and paste this into B2:
=REGEXMATCH(A2, "^[^@\s]+@[^@\s]+\.[A-Za-z]{2,}$")It returns TRUE for anything shaped like an address and FALSE for the rest. Sort by that column and fix or delete the FALSE rows. Then sort by domain and scan for misspelled versions of the big providers, which the formula will not catch.
Free check 2: MX record lookup
An MX record is the DNS entry that names the mail server for a domain. If a domain has one, it can receive email. This is the cheapest useful check there is, because it removes dead domains, parked domains and typos in the domain name.
On macOS or Linux, open a terminal:
dig +short MX example.comOn Windows, open Command Prompt:
nslookup -type=mx example.comHow to read the answer:
- One or more lines with a number and a hostname (for example
10 mail.example.com.) mean the domain has a mail server. - A single line that reads
0 .is a null MX. The domain is telling you it accepts no email at all. - No answer means no MX record. Under RFC 5321, section 5.1, a sending server then falls back to the domain's address record, so mail can still be delivered in theory. For a business domain it is a strong sign the address is not in use.
If you do not want to use a terminal, free web tools such as MXToolbox run the same lookup in a browser.
An MX check does not look at the part before the @. anything@example.com passes as long as the domain receives mail.
Free check 3: A verifier's free tier
A mailbox check needs a conversation with the recipient's mail server, and verification services are set up to have that conversation from servers with a good reputation. For a small list, the free tiers are enough.
- ZeroBounce offers 100 free verifications a month when you sign up with a business domain, according to its pricing page.
- Hunter charges half a credit per verification, and its free plan lists 50 credits a month at the time of writing.
- NeverBounce, Bouncer and MillionVerifier sell pay-as-you-go credits for larger lists. Check their current prices before you choose, because they change.
Upload a CSV, wait for the run, and download the result with a status on every row.
Free check 4: A manual SMTP check, and why it rarely works
An SMTP check is a mailbox check done by starting to deliver a message and stopping before any content is sent. You can do it by hand:
- Look up the domain's MX host with the commands above.
- Connect to that host on port 25 with
telnetornc. - Send
HELO, thenMAIL FROMwith your own address, thenRCPT TOwith the address you are testing. - Read the reply to
RCPT TO. A code starting with 250 means accepted. A code starting with 550 means the mailbox was rejected. - Send
QUIT. No message is delivered.
It is worth knowing how this works, because it is what every verifier does behind its upload button. In practice it fails from a laptop for four reasons:
- Many home and office internet providers block outgoing connections on port 25.
- Catch-all servers answer 250 for every address, real or not.
- Mail servers are allowed to refuse to confirm addresses. RFC 5321 lets operators disable the
VRFYcommand for security reasons, and many servers also delay or defer unknown senders. - Repeating the check for hundreds of addresses from one IP address looks like an attack, and gets that IP blocked.
Use the manual method to test one address when you are curious. Use a service for a list.
What to do with each result
| Result | Meaning | What to do |
|---|---|---|
| Valid | The server accepted the mailbox | Send |
| Invalid | The server rejected the mailbox, or the domain has no mail server | Remove it |
| Catch-all (accept-all) | The server accepts everything, so the mailbox is unconfirmed | Send in small batches and watch the bounces |
| Unknown | The server did not answer in time | Re-run later, or hold it back |
| Role address | A shared inbox such as info@ | Keep it for small local businesses, where the owner often reads it |
Some verifiers tell you to drop role addresses. That advice fits newsletters and large companies. For cold email to a five-person business, the role address is often the only one the business publishes.
Why verification is worth the effort
Mailbox providers judge your sending domain by what happens to your mail. Hard bounces tell them you are mailing addresses you never checked. Spam complaints tell them recipients did not want it.
Google's email sender guidelines ask senders to keep the spam rate reported in Postmaster Tools below 0.10% and to avoid ever reaching 0.30%. The same page requires SPF or DKIM authentication for all senders, and SPF, DKIM and DMARC for anyone sending more than 5,000 messages a day to Gmail accounts. Verification will not fix missing authentication, so set that up as well.
One thing to avoid: do not test an address by sending a real email from your main domain and waiting to see if it bounces. That bounce counts against you like any other.
What lead tools check for you, and what they leave out
Most tools that find email addresses run some checks before they hand you the list. Read the small print on which ones.
LocalLeads, the tool we build, finds local businesses on Google Maps for a niche and a city, reads each business's own website for an email and a phone number, and checks that the email's domain has a mail server (the MX check described above). It also ranks each business from 0 to 100 by how likely it is to buy what you sell, with the reasons listed.
It does not do mailbox-level (SMTP) verification and it does not guarantee deliverability. An address from LocalLeads has passed check 2 on this page and has not been through check 3. It also does not find personal emails of named individuals at large companies, and it does not write or send emails. Before a large send, run the export through a dedicated verifier.
LocalLeads needs a free account, which includes 100 leads every month with no card. One credit is one delivered lead, and the contact lookup is part of that credit. Pro is €4.99 a month for 500 credits, or €48 a year with 6,000 credits up front. Business is €19.99 a month for 2,500 credits, or €192 a year with 30,000 up front. You can export to CSV or Google Sheets, pull the list through the API, or work with it from Claude or Cursor through MCP.
A short routine for a new list
- Remove duplicates and run the syntax formula.
- Check MX records for any domain you do not recognise, or let your lead tool do it.
- Upload the list to a verifier and remove the invalid rows.
- Split catch-all and unknown rows into their own batch and send to them slowly.
- Verify again if the list has sat unused for a few months, because addresses go stale.
If you are still building the list, see how to find emails for cold emailing. For the rules on contacting the addresses you find, start with Is Google Maps scraping legal? and check your local law: legitimate interest for B2B role addresses under the GDPR in the EU, and CAN-SPAM in the US. This article is not legal advice.
Start with addresses that pass the domain check
The link below creates a free account and runs a search, so you get a ranked list of local businesses with the emails their websites publish, each already checked for a mail server.
Find accountants in Manchester with emails
LocalLeads by PostOrbit, built by EtherLabz.
Frequently asked questions
Can I verify an email address for free?
Yes. A syntax check with a spreadsheet formula and an MX lookup with dig or nslookup cost nothing. For a mailbox-level check, verifiers such as ZeroBounce and Hunter have free monthly allowances that cover small lists.
What is the difference between an MX check and an SMTP check?
An MX check confirms that the domain has a mail server and can receive email. An SMTP check asks that mail server whether it will accept mail for one specific mailbox. An address can pass the MX check and still fail the SMTP check because the mailbox does not exist.
What is a catch-all email address?
A catch-all (or accept-all) domain is set up to accept mail for every address, real or not. A verifier cannot confirm individual mailboxes on such a domain, so it reports them as catch-all. Send to those in small batches and watch for bounces.
Can I verify an email by sending a test message?
You can, but a bounce from that test counts against your sending domain like any other bounce. Use checks that do not deliver a message: an MX lookup or a verification service.
Does a verified email guarantee my message reaches the inbox?
No. Verification tells you the mailbox exists. Inbox placement also depends on your domain's authentication (SPF, DKIM, DMARC), your sending history and how recipients react to your mail.
Does LocalLeads verify email addresses?
LocalLeads checks that the email's domain has a mail server (an MX record). It does not do mailbox-level (SMTP) verification and does not guarantee deliverability. Run a dedicated verifier before a large send.
End of entry
Your turn
See which businesses in your city need what you sell.
Pick what you sell, a niche and a city. The businesses come back ranked, with the reasons on each row.
100 free leads every month. No card. You create a free account, then your search runs.