Documentation
MXcatch is an inbound-only mail host. You point your domain's MX records at it, and it decides what happens to each message that arrives.
How it works
There are three moving parts, and they map one-to-one onto the screens in the app:
- A domain. Any domain you control. MXcatch checks that both of its MX hosts are present in DNS before it will accept mail for you.
- An alias. A local-part on that domain —
billing,support, or a catch-all that accepts everything. - One or more actions. What to do when mail arrives for that alias: forward it, archive it, post it to Slack, or POST it to your own endpoint.
Mail flows in one direction only. MXcatch never sends on your behalf and never touches the SPF, DKIM, or DMARC records used by whatever already sends mail from your domain.
Start here
- Quickstart — from signup to a delivered test message.
- MX records — the exact values, and what to do at each DNS provider.
- Actions — forward, archive, Slack, and webhook, with their configuration and retry behaviour.
- Webhooks — payload schema, headers, and signature verification.
- Routing rules — match on sender, recipient, subject, or body.
Limits and retention
Every plan is a fixed monthly price with a daily ceiling rather than a per-message charge. Messages past the daily ceiling are rejected at SMTP time, so the sender receives a bounce instead of the mail disappearing.
| Plan | Domains | Aliases / domain | Max attachment | Emails / day | Retention |
|---|---|---|---|---|---|
| Free | 1 | 10 | 10 MB | 50 | 3 days |
| Starter | 5 | 50 | 25 MB | 500 | 14 days |
| Business | 25 | Unlimited | 50 MB | 5,000 | 30 days |
| Scale | 100 | Unlimited | 100 MB | 50,000 | 90 days |
Retention is enforced on a schedule: once a message passes your plan's retention window it is removed, along with its stored body and attachments. If you need mail kept for longer, add an archive action so a copy lands in object storage under a prefix you control.
Message statuses
Every message that arrives gets a status you can see in the logs:
| Status | Meaning |
|---|---|
received | Accepted and stored. No delivery action has completed yet. |
delivered | At least one action completed successfully. |
partial | Some actions succeeded, others failed after their retries. |
failed | Every configured action failed. |
filtered | Dropped deliberately by a routing rule. |
Getting help
Email hello@mxcatch.net. Include the message ID from the logs and we can trace exactly what happened to it.