To verify an email list, run each address through a verifier that checks the domain and the mailbox, then keep only the addresses that come back deliverable. The fastest method is to do it where the list already lives: in Google Sheets, with a sidebar add-on. You select the column of emails, click run, and a status fills in next to each row. ReplyLabs does this at $0.01 per email and only charges for addresses that return a result. Below is the exact process, how to read the verdicts, and how to handle the tricky rows.
The fastest method, step by step
- Install ReplyLabs from Extensions, Get add-ons, then open it with Extensions, ReplyLabs, Open sidebar.
- Put every email in a single column with a header such as
Email. - In the Verify tab, select the column range.
- Check the cost preview. It shows the exact total at $0.01 per address.
- Click Run. A status column fills in row by row.
- Filter on the status column and act on each group.
The check runs server-side, so a list of fifty addresses or fifty thousand uses the same flow, and a slow mail server on one row never blocks the rest.
Why verifying first matters
A bounce happens when a mail server refuses your message, almost always because the mailbox does not exist. Mailbox providers treat a high bounce rate as a sign of a neglected list and start sending more of your mail to spam, including the mail to valid recipients. A healthy bounce rate sits under 2 percent, and anything over 5 percent is treated as dangerous. On cold outbound a single high-bounce campaign can damage a sending mailbox for weeks. Verifying the list before you send is how you stay in the safe band. The full mechanics are in the email deliverability definition.
How to read the results
The status column sorts your list into four groups:
- Deliverable. The mailbox exists and accepts mail. Keep these.
- Undeliverable. The mailbox or domain cannot receive mail. Delete these; they are your would-be hard bounces.
- Risky or accept-all. The domain accepts everything, so the specific mailbox cannot be confirmed. Decide deliberately.
- Unknown. The server timed out or gave no clear answer. Re-running later sometimes resolves these.
The job is triage, not perfection. You will not turn a risky row into a confirmed one, but you will remove every row that is certain to bounce, which is where most of the deliverability damage comes from.
How to handle catch-all addresses
A catch-all domain accepts mail for every possible address, even ones that do not exist, so an SMTP check always returns positive. These are not invalid, they are unconfirmed, and they make up a meaningful share of most lists. The safe pattern is to separate them: send to your confirmed deliverable rows on your primary identity, and if you want to pursue the catch-all rows, send to them on a separate warmed identity so any bounces do not touch your main domain. See the catch-all email definition for the detail.
How to handle disposable and role addresses
Two flags tell you to clean further:
- Disposable addresses use throwaway domains that vanish within hours. They are noise in any list you intend to email more than once.
- Role addresses like
info@orsales@reach a shared inbox, not a person. They convert poorly and heavy role sending can look like spam to some providers.
ReplyLabs surfaces both as flags next to the deliverability status, so you can filter them out without losing the underlying verdict.
How often to re-verify
Email lists decay. People change jobs and mailboxes get deactivated, so a list verified six months ago is no longer clean. Re-verify any list that has been sitting before you send to it again. The cost is small relative to the reputation damage of mailing a stale list, and because billing is per result you only pay for the addresses actually checked.
What it costs
ReplyLabs charges $0.01 per email verified, and only addresses that return a result are billed. New accounts start with $20 of free credit, enough to verify 2,000 addresses before you pay anything. The cost preview shows the exact total for your row count before you run, so a 10,000-address list shows its cost up front rather than after the fact.
A worked example
Say you scraped 3,000 prospects and want a clean list before an outbound sequence.
- Drop the obvious junk. Use a quick filter to remove blank cells and obvious typos before you spend anything.
- Verify the column. Select the email column, glance at the cost preview, and run. A status fills in for each row.
- Filter on status. Keep deliverable, delete undeliverable, and move risky rows to a separate tab.
- Filter the flags. Remove disposable and role addresses from the personal-outbound list.
- Send. Your primary identity now mails only confirmed deliverable rows, and the catch-all rows wait for a separate warmed identity.
This sits early in the chain on purpose. Verify is the cheapest step, so spending it first removes the dead rows before any AI or scraping spend, as laid out in the email verification in Google Sheets guide.
Common questions
Can I verify an email list for free in Google Sheets?
The built-in ISEMAIL function checks syntax for free, but it cannot tell you whether a mailbox exists. For real deliverability you need an add-on. ReplyLabs gives new accounts $20 of free credit, which covers 2,000 verifications before you pay.
How accurate is email verification?
Domain and mailbox checks are reliable for ordinary domains. The honest limit is catch-all domains, where the server accepts everything and no verifier can confirm the specific mailbox. A good verifier flags these as risky rather than guessing.
Does verifying hurt my sender reputation?
No. Verification opens an SMTP conversation without sending a message, so it does not count as mail to the recipient. Sending to an unverified list is what hurts reputation.
How long does it take to verify a list?
Results stream back row by row as each server responds. A few thousand addresses typically complete in minutes, and you can keep working in the sheet while it runs.
What status should I worry about?
Undeliverable rows are the ones that bounce, so remove them before sending. Risky and catch-all rows need a deliberate decision. See the email verification in Google Sheets guide for how to triage each group.