To handle catch-all emails in cold outreach, never mix them into your main send. A catch-all domain accepts mail for every possible address, so a verifier cannot confirm whether the specific mailbox exists, which means some share of those addresses will bounce. The safe pattern is to segment catch-all rows into a separate campaign, send them at low volume from a secondary domain, and judge them by their actual bounce behaviour rather than blocking your primary identity. That way the uncertainty stays contained and your main sending reputation is never exposed to it.
Why catch-all addresses cannot be verified
When a verifier checks a normal domain, the receiving server tells it whether the mailbox exists. A catch-all (also called accept-all or wildcard) domain is configured to accept mail for any address at the domain, including ones that were never created. So when a verifier asks "does jane@example.com exist?", a catch-all server answers yes even when it does not.
This is not a flaw in the verifier. The server genuinely will accept the message at the connection stage. The problem is that acceptance happens at the domain level, and the real decision, whether the mailbox exists, is made later, after the connection closes. If the mailbox does not exist, that decision comes back as a bounce. So a catch-all address is not invalid, it is unconfirmed, and a meaningful share of any list will be catch-all. A good verifier labels these as risky or accept-all rather than guessing. The mechanics are in the catch-all email definition.
Should you email catch-all addresses at all?
It depends on how much the contacts are worth and how much reputation risk you can absorb.
- If your domain is new or fragile, skip them. You cannot afford the bounce variance while reputation is still building, and the downside outweighs a few extra sends.
- If the contacts are high-value and your infrastructure is healthy, pursue them deliberately, on separate infrastructure, at controlled volume. Many catch-all addresses are real and reachable; you just cannot confirm which in advance.
The mistake is treating catch-all rows like confirmed deliverable rows and dropping them straight into your primary campaign. That is what turns an unknown into a bounce spike on the domain you most need to protect.
The two-campaign pattern
The reliable way to handle catch-all addresses is to split your list into two campaigns with different infrastructure and different sending behaviour.
- The safe campaign holds only addresses verified as deliverable. Send these from your primary domain at normal velocity. This is the bulk of your reachable list and it carries no confirmation risk.
- The risky campaign holds catch-all and unknown addresses. Send these from a secondary domain or subdomain, at noticeably lower volume, so any bounces land on infrastructure that is not your main identity.
This containment is the whole point. If 15 percent of the risky campaign bounces, that hit is absorbed by a domain you can afford to spend, while your safe campaign keeps its bounce rate under 2 percent and its reputation intact. The broader logic of keeping bounces low is covered in the email deliverability definition.
How to send to the risky segment safely
Once catch-all rows are isolated, a few practices keep them from doing damage.
- Warm the secondary domain first. A separate sending identity still needs reputation. Ramp it the same way you would any new domain before pushing catch-all volume through it.
- Send at lower velocity. Slower sending limits how many bounces can pile up in a short window, which is what providers react to most sharply.
- Watch the bounce rate in real time. The risky segment tells you its own answer. If a given domain's catch-all addresses bounce heavily, suppress that domain and stop guessing.
- Keep authentication correct on the secondary domain too. SPF, DKIM, and DMARC matter as much on the test identity as on the primary one.
In effect you are using a small, controlled send to convert "unconfirmed" into "observed". The addresses that accept and engage become reachable contacts; the ones that bounce get suppressed without ever touching your main domain.
How to flag and segment catch-all rows in Google Sheets
You can do the whole split where the list already lives. ReplyLabs verifies an email column inside Google Sheets at $0.01 per address and writes a status next to each row, including a risky or accept-all label for catch-all domains. From there:
- Run verification on the email column.
- Filter the status column.
- Keep deliverable rows on the main tab for the safe campaign.
- Move risky and accept-all rows to a separate tab for the risky campaign.
- Delete undeliverable rows entirely; those are confirmed dead.
Because billing is per result and new accounts start with $20 of free credit, you can verify and segment a few thousand contacts before paying anything. The end-to-end process sits in the email verification in Google Sheets guide, and the outbound side is in the cold email from Google Sheets walkthrough.
What not to do with catch-all addresses
- Do not delete them blindly. Many are real contacts, and on a B2B list catch-all domains are common, so blanket deletion throws away reachable prospects.
- Do not send them from your primary domain. This is the single most damaging move, because it exposes your best reputation to your least certain data.
- Do not assume a catch-all label means invalid. It means unconfirmed. The verdict is "send carefully", not "discard".
The right posture is neither fear nor wishful thinking. Catch-all addresses are a known-uncertain segment, and they are handled like any uncertain bet: small, separate, and watched.
Common questions
Are catch-all emails valid?
They are unconfirmed, not invalid. The receiving server accepts mail for any address at the domain, so a verifier cannot tell whether the specific mailbox exists. Some are real and reachable; some will bounce.
Why can't a verifier confirm a catch-all address?
Because the server accepts every address at the connection stage, including nonexistent ones. The real existence check happens after the connection closes, and if the mailbox is missing it comes back later as a bounce.
Should I send cold emails to catch-all addresses?
Only on separate infrastructure, at low volume, after warming a secondary domain. Keep them out of your primary campaign so any bounces never touch the domain you most need to protect.
How do I find catch-all emails in my list?
Run the list through verification. ReplyLabs flags catch-all domains as risky or accept-all next to each row in Google Sheets, so you can filter and segment them in one pass.
What share of a list is usually catch-all?
It varies by audience, but on B2B lists catch-all domains are common and can be a substantial minority of addresses, which is exactly why a deliberate handling plan matters rather than ignoring them.