MXcatch

Actions

An action is what MXcatch does with a message once it has been accepted. An alias can have several, and they run independently of each other.

The four actions

ActionWhat it doesRetries
ForwardDelivers the original message to one or more mailboxes5, backing off 30s → 15m
Archive to storageCopies the raw .eml and attachments to object storage3
SlackPosts a message summary to an incoming webhook5
WebhookPOSTs the parsed message as signed JSON5, backing off 30s → 30m

Actions are ordered, and you can drag them into the order you want, but they do not depend on one another. A failing webhook does not stop a forward from being delivered — it only affects the message's own status, which becomes partial when some actions succeed and others do not.

Forward

Forwarding re-delivers the original message — the complete MIME body, not a summary — to one or more destination addresses. Attachments survive intact because the raw message is what gets relayed.

The Reply-To header is set to the original sender, so replying from your mailbox goes back to whoever wrote to you rather than to MXcatch.

One address or several: a single alias can fan out to a whole team. Delivery is attempted five times with an increasing gap between tries, which absorbs the temporary rejections that busy mailbox providers hand out. When every attempt fails, the message is marked failed and the reason is recorded in the logs.

Forwarded mail is subject to the receiving provider's own filtering. If forwards to Gmail are landing in spam, it is usually because the original message failed the sending domain's SPF check once relayed — a limitation of forwarding in general, not of MXcatch. Archiving or a webhook avoids the problem entirely.

Archive to storage

This action copies the raw .eml and every attachment into EU object storage, filed by date under a prefix you choose:

your-prefix/2026/08/29/<message>.eml
your-prefix/2026/08/29/attachments/receipt.pdf

If you leave the prefix empty it defaults to mxcatch/your-domain.com. Because the layout is date-partitioned, a whole month of mail is one prefix scan away, which is what you want if anything downstream reads the archive in bulk.

Archiving is the way to keep mail past your plan's retention window: the inbox copy is removed on schedule, the archived copy is not. See archiving email attachments for the longer version.

Slack

Paste an incoming webhook URL from your Slack workspace and every matching message is posted to that channel — sender, recipient, subject and a preview of the body.

This is the fastest way to make a shared address visible to a team without giving everyone a mailbox. Details and setup in email to Slack. Discord incoming webhooks work the same way.

Webhook

The general-purpose action: MXcatch POSTs the parsed message to any HTTPS endpoint as JSON, signed with HMAC-SHA256 so your handler can prove the request came from us.

Attachments are not inlined. Each one arrives as a signed URL valid for 60 minutes, alongside its filename, MIME type, size, and SHA-256 — so you can stream large files without paying for a base64-inflated request body, and verify what you downloaded.

Delivery is retried five times over roughly 45 minutes. Return any 2xx to acknowledge; anything else counts as a failure and schedules a retry, which means your endpoint should be idempotent. The full payload schema and verification code are in the webhook reference.

Combining actions

Actions compose, and most useful setups use two or three:

  • Forward + archive — mail still lands in your normal mailbox, and a copy is kept beyond the retention window.
  • Webhook + Slack — your system processes the message, and a human sees that it happened.
  • Catch-all + webhook — every address on the domain becomes an event stream. See catch-all addresses.

To send different mail to different places, use routing rules rather than more actions.

Pick an action and send a test.

Every action is available to try on the free plan.

Create your free account