Something Inc.Schedule a free consultation
STRATEGY

How to Handle Catch-All Domains Without Wrecking Cold Email Deliverability

Catch-all domains accept mail to any address, real mailbox or not, which is exactly why verification tools can't clear them the way they clear a normal inbox. Jesse Ouellette's July 2026 LeadMagic posts on catch-all behavior and list decay lay out why, and what to do about it before you scale a send.

JBJosh BernsteinManaging Partner · JUL 29, 2026 · 11 MIN READ

A catch-all domain accepts mail sent to any address at that domain, whether or not a real mailbox sits behind it. That single fact breaks the normal logic of email verification. Jesse Ouellette, founder of LeadMagic, published a cluster of posts on the LeadMagic blog in early July 2026 working through catch-all behavior, bounce codes, and list decay in cold email verification. His framing is direct: a verification tool can confirm a normal domain rejects or accepts a specific address, because the mail server answers that question honestly. A catch-all domain answers yes to everything, which means the tool can't tell you anything useful about the one address you actually care about. That's not a tooling failure. It's a structural limit, and most cold-email teams still send into it without realizing what they're gambling on. The domain isn't hiding anything. It's telling you exactly what it will do — accept the mail — and leaving the harder question, whether a person is actually on the other end, entirely unanswered.

KEY TAKEAWAYVerification can't clear a catch-all domain the way it clears a normal one, because the domain accepts every address regardless of whether a real mailbox exists. Treat catch-all results as a routing decision, not a pass/fail gate, and re-check them on the same cadence you use for list decay generally.

What a catch-all domain actually is

Most business domains reject mail sent to an address that doesn't exist. Send to a made-up name at a normal company domain and the mail server bounces it back almost immediately, which is exactly the signal a verification tool relies on to mark an address Invalid. A catch-all domain is configured differently. It's set up to accept mail addressed to any local part at the domain, real employee or not, and route it somewhere, often into a shared inbox, a spam filter, or nowhere anyone checks. The server says yes to your verification ping regardless of who's actually on the other end.

That configuration is common enough that it shows up constantly in cold-email lists, especially ones built from smaller companies or from tools that infer email patterns rather than confirming them directly. It's a different problem from the one we covered in cold email verification's point-in-time limits, where the issue is that a "Valid" result goes stale over time. Catch-all is a different facet of the same tool: even a verification check run this minute, against a domain configured this way, can't return a confident answer. The domain isn't lying about accepting your mail. It's just not telling you whether a person receives it.

Why do domains get set up this way in the first place? Usually convenience, not carelessness. A company migrating mail providers, running a catch-all as a safety net so no misdirected internal mail gets lost, or simply never disabling the default a hosting provider ships with, ends up with a domain that will swallow anything addressed to it. None of that has anything to do with whether the specific person you're trying to reach is still there, still checks that inbox, or ever did. The configuration is about the company's mail infrastructure. Your verification result is trying to answer a question about one individual. Those two things aren't the same question, and a catch-all setup makes that gap impossible to paper over with a clean status label.

RESULTWHAT IT ACTUALLY TELLS YOUWHAT TO DO WITH IT
ValidMailbox confirmed to exist and accept mail on a non-catch-all domainSafe to send at normal volume
InvalidMailbox does not exist, or the server rejected the address outrightDrop from the list; don't retry without a new source
Catch-allDomain accepts mail to any address; this specific mailbox is unconfirmedSegment separately; send at reduced volume with tighter monitoring, or exclude for cold outbound entirely
RiskyServer behavior suggests catch-all, a role address, or an unstable mailboxTreat like catch-all: lower priority, closer watch on bounce and complaint signals
UnknownServer gave an ambiguous response — timeout, greylisting, no clear answerRe-check on its own; don't default to including or excluding on one pass

Why catch-all domains come back Unknown or Risky, not Invalid

The mechanics are simple once you see them. A verification tool works by getting as close as it can to actually attempting delivery, then reading how the receiving server responds, without completing the send. Against a normal domain, that response is decisive: the server either confirms the mailbox exists or rejects it outright. Against a catch-all domain, the server accepts every address it's asked about, because that's how it's configured to behave. There's no rejection to read, so there's no way to distinguish a real employee's inbox from a string of characters nobody will ever check. The tool does the only honest thing it can do: it flags the result Unknown or Risky instead of manufacturing a Valid it can't back up.

Bounce codes are part of the same picture, and it's the other angle Ouellette's July cluster worked through. A hard bounce, a clear server-side rejection, is unambiguous: the address is gone, drop it. A catch-all domain almost never produces that clean signal at verification time, because it isn't rejecting anything. The bounce, if it ever comes, tends to show up later and softer — a message that sits unread, a soft bounce buried in a full mailbox nobody's monitoring, or no response at all. That delayed, ambiguous failure mode is exactly why catch-all addresses need a different handling policy than a normal Valid or Invalid result, not the same one applied a little more cautiously.

This is where illustrative math is worth doing before you scale a send, rather than treating catch-all as a rounding error. If even 1 in 20 addresses on a list sits behind a catch-all domain, that's 5% of your send going out with no real confirmation a person is on the other end. On a 2,000-contact push, that's 100 addresses where a bounce, a spam trap, or dead air is all you'll ever get back, and you won't know which ones until after you've already sent. That's not a measured industry figure, it's the kind of back-of-envelope check Ouellette's framing points teams toward doing on their own list before they hit send, not after.

1 in 4
buckets a verification tool can return besides a clean pass/fail (Unknown, Risky, catch-all) — the gray middle most teams skip past
0
signal a catch-all response gives you about whether a specific person receives the mail
1 in 20 (illustrative)
share of a typical list worth checking for catch-all exposure before a volume ramp, not a measured average
A catch-all result isn't a maybe. It's the domain telling you it will take the mail either way, and leaving the actual risk assessment entirely up to you.

The real cost of sending blindly to catch-all domains

Sending to catch-all addresses at scale without a plan raises two kinds of risk at once, and they compound. The first is bounce risk in the loose sense: mail that gets swallowed by an inbox nobody monitors behaves, from a reputation standpoint, a lot like mail that never should have been sent. It doesn't always generate a hard bounce, which is part of the problem — a hard bounce at least gives you a clean signal to act on. A catch-all address that silently absorbs mail with no open, no reply, and no bounce just drags down your engagement rate while looking, on paper, like it went through fine. That's the same engagement math that determines sender score: mailbox providers read a pattern of sends with no engagement behind them as a signal worth throttling, whether or not a single message technically bounced.

The second risk is the one that compounds over time: list decay. A list verified weeks ago isn't the list you're sending to today, because people change jobs, domains get reconfigured, and a domain's catch-all status itself isn't fixed — it can flip on or off as a company changes its mail server settings, independent of anything happening to the individual mailboxes behind it. That means a catch-all flag from a verification pass six weeks ago is exactly as perishable as a Valid flag from the same pass, maybe more so, because it was already an uncertain result before any time passed at all. We've written about why a deliverability audit needs to check the warmup pool and not just the send logs; catch-all exposure is one more input that audit should be pulling in, not treating as a one-time list-cleaning step.

How to handle catch-all domains without tanking deliverability

None of this means catch-all addresses are automatically dead weight — plenty of real, valuable contacts sit behind catch-all domains, especially at smaller companies. The fix isn't excluding every catch-all result on principle. It's routing them deliberately instead of sending them exactly like a confirmed Valid.

01Any time a verification pass returns catch-all, Unknown, or Risky results on a list you're about to sendSegment those results out of the standard send before you do anything else
THE MOVES
Split the list into confirmed Valid and everything-else, don't blend them into one send with one risk profile
Check whether the catch-all share is a handful of addresses or a meaningful chunk of the list, since the response should scale with exposure
Hold the segmented catch-all group for a deliberate decision instead of letting it ride along in the next scheduled send by default
DONE WHENConfirmed Valid addresses go out on the normal send; catch-all and uncertain addresses wait for a specific decision
02A catch-all contact is high-value enough that excluding them outright isn't the right callSend to it, but on a tighter leash than the rest of the list
THE MOVES
Route catch-all contacts through a lower-volume, already-warmed sending domain rather than a new or scaling one
Watch bounce and complaint signals on that segment specifically, not just at the campaign level, since a small segment's problems get diluted in aggregate numbers
Cap how much of any single send's volume comes from catch-all addresses, so a bad batch can't move the needle on the whole domain's reputation
DONE WHENCatch-all contacts still get reached, but their risk is contained to a monitored slice of the send instead of spread across the full list
03A list has aged since its last verification pass, especially one with a meaningful catch-all shareRe-verify before you trust the catch-all flag as much as the Valid flag
THE MOVES
Treat catch-all status as perishable data, not a fixed property of the domain, since mail server configuration changes independent of individual mailboxes
Re-run verification on the catch-all segment on the same cadence you'd apply to the rest of the list for list decay generally, not a separate, looser schedule
Cross-reference against send history: a catch-all address that's replied before is a different risk than one that's never engaged at all
DONE WHENThe catch-all segment reflects current domain behavior, not a snapshot that may no longer match how the domain is configured
04Scaling a domain or a client program from pilot volume to full send volumeBuild catch-all exposure into the same pre-ramp check as authentication and verification age
THE MOVES
Pull the catch-all share for the full expanded list before the ramp, not after the first week of soft numbers raises questions
Decide the catch-all handling policy — exclude, segment, or monitor — before volume increases, not while it's already happening
Document the decision so the next person scaling the same domain doesn't have to re-derive the same judgment call from scratch
DONE WHENThe domain ramps with a documented catch-all policy in place, not an assumption that every address on the list behaves the same way

On our cold email lead generation service, catch-all handling runs as a standing step in list prep, not a one-off cleaning pass before a campaign launches. For B2B programs pulling contacts from smaller and mid-market companies, where catch-all configuration is far more common than at large enterprises, that discipline is the difference between a list that quietly erodes sender reputation and one that scales cleanly. It's the same operational rigor that kept outbound infrastructure defensible in our work with FMS Investor: the program held up because uncertain signals got routed and monitored deliberately, not blended into the send and hoped past.

Do this next

Pull your most recent verification results for any list you're planning to send this week and count how many came back catch-all, Risky, or Unknown, not just how many were Valid or Invalid. If that number is more than a handful, segment it out before you send, and decide deliberately whether to exclude, monitor, or route those contacts through a tighter-controlled slice of volume. Don't treat a catch-all flag as permanent — it's exactly as perishable as a Valid result, and it needs the same re-verification discipline as the rest of your list decay strategy. Build the catch-all check into your pre-ramp checklist alongside authentication and sender score, not as an afterthought once bounce rates already look off. Write the policy down once, per list source, so the decision doesn't get re-litigated from scratch by whoever happens to be running the next campaign. For more on how LeadMagic frames the underlying verification mechanics, see LeadMagic's blog.

See where you are cited today

A free snapshot audit of your rankings and AI citations before we ever talk.

JB
Josh BernsteinMANAGING PARTNER, SOMETHING INC.

Josh leads work at the intersection of SEO and generative engines at Something Inc., helping B2B brands get ranked and cited across every major AI engine.

Free consultation

Let us be the last SEO agency you ever work with

A 30 minute call and a free audit of your SEO and GEO position. You keep the findings either way.