MXcatch
Use case

Catch-all email addresses

Accept mail at every address on your domain — including the ones you have not invented yet — and decide per message what happens to it.

What a catch-all actually is

Normally, a mail server knows a fixed list of addresses. Send to one that is not on the list and the server rejects it — the sender gets a bounce saying the recipient does not exist.

A catch-all removes the list. Every address on the domain is valid, whether or not anyone created it. hello@, stripe-2026@, this-one-is-for-that-newsletter@ — all delivered, all yours.

Written as an address it is *@your-domain.com, and the asterisk is doing exactly what you would expect.

What it is genuinely good for

A different address for every signup

Give each service its own address — netflix@, bank@, that-conference@. You never invent them in advance and you never configure them. When spam starts arriving at that-conference@, you know precisely who sold or lost your address, and you can drop mail to it with one rule.

This is the same idea as Gmail's +tag trick, minus its fatal flaw: everyone knows to strip a plus tag, and plenty of signup forms reject the + outright. A distinct local-part looks like an ordinary address because it is one.

Never losing mail to a typo

Someone writes to suport@ or hellp@. Without a catch-all that message bounces and you never learn it existed. With one, it lands.

Per-customer and per-project addresses

Generate an address per customer, ticket, or deployment — order-8814@, build-3f2a@ — and use the recipient as the routing key. Nothing needs provisioning, because there is nothing to provision.

Test suites that need real email

End-to-end tests that exercise signup and confirmation need a fresh, real address per run. A catch-all domain plus a webhook gives the test runner the confirmation mail directly, without an IMAP poller in your CI pipeline.

The honest downside

A catch-all cannot bounce a dictionary attack. Spammers guess local-parts against domains, and where a fixed list rejects the guesses, a catch-all accepts them.

It is less dramatic than it sounds. Spam filtering happens before delivery, so most of it never reaches you. What does get through is easy to contain, because the recipient address is itself the signal: routing rules can drop by sender, subject, or recipient pattern, and a compromised per-signup address is one rule away from silence — no bounce, no unsubscribe link, no negotiation.

The pattern that keeps this manageable is to use named aliases for the addresses you publish widely, and let the catch-all handle the long tail.

Setting one up

  1. Add your domain and set the two MX records — per-provider instructions.
  2. Create an alias and turn on catch-all. One toggle; it applies to the whole domain.
  3. Choose what happens to the mail. Read it in the MXcatch inbox, forward it to a mailbox you already use, POST it to a webhook, or archive it.

Named aliases still win over the catch-all, so support@ can have its own actions while everything else falls through to the general rule.

Catch-all on other providers

Google Workspace and Microsoft 365 both support a catch-all, and both make you route it to a real, licensed mailbox — you are paying per seat for a bucket. Cloudflare Email Routing offers a free catch-all but only forwards to verified destination addresses, so the mail has to end up in somebody's existing inbox. ImprovMX does the same thing for forwarding.

MXcatch treats the catch-all as an event source rather than a redirect: forward it if you want, but you can just as easily archive it, post it to Slack, or turn it into JSON.

Frequently asked questions

What is a catch-all email address?

+
A catch-all accepts mail sent to any address on your domain, including addresses that were never created. Mail to anything@your-domain.com is delivered rather than bounced.

How do I set up a catch-all address?

+
Point your domain's MX records at a host that supports it, then enable catch-all on the domain. In MXcatch that is a single toggle on the alias, and it takes effect immediately.

Does a catch-all attract more spam?

+
It can, because a dictionary attack no longer bounces. In practice it matters less than people expect: spam is filtered before delivery, and routing rules let you drop anything that gets through by sender or subject.

Can I see which address a message was sent to?

+
Yes — the recipient is shown in the inbox and included as the to field in webhook payloads. That is what makes per-signup addresses useful: you can tell exactly who leaked one.

Is a catch-all the same as an alias?

+
An alias is one specific address you create in advance. A catch-all is a rule that accepts every address, created or not. You can run both: named aliases with their own actions, plus a catch-all for everything else.

Can I forward a catch-all to Gmail?

+
Yes. Add a forward action and every address on the domain is delivered to your existing mailbox, with the original recipient preserved in the headers so Gmail filters can still sort on it.

Every address on your domain, yours.

Catch-all is on the free plan. One domain, no card required.

Create your free account