Cutout
REFERENCE

How it works

Cutout sits between the outside world and your real inbox, acting as an invisible relay.

Inbound flow

  1. An email arrives at any address on a domain pointed at Cutout (e.g. newsletter@yourdomain.com).
  2. Cloudflare Email Routing's catch-all rule triggers the worker.
  3. The worker matches the recipient against your rules, top to bottom; the first match wins.
  4. On a Forward match, Cutout mints one reply+<uuid>@yourdomain.com reverse alias and saves the mapping in D1. The same alias is shared across every destination on the rule, so any reply lands back on the original sender.
  5. The worker fans the message out to each destination.

Forwarding modes

Each rule with email destinations picks one of two modes. Both inject an X-Original-From header carrying the real sender's address, for archival.

Native (default)

Uses EmailMessage.forward(). Original bytes pass through untouched (PGP, attachments, formatting). Reply-To is overlaid but may be ignored by clients if the message already has one.

Proxy via rewrite

Uses Email Service structured send. Reconstructs the message so Reply-To always works, but strips PGP / signed MIME and attachments.

Telegram destinations use sendMessage; Discord destinations use createMessage with a Reply button. Bot reply context is keyed by tg:<chat_id>:<message_id> or dc:<channel_id>:<message_id> in D1.

Replies

You reply from your real mailbox, or by replying to a bot message. Either way, the worker resolves the original sender from D1 and re-sends via Email Service's send_email, with the alias as From and the original sender as To.

Components

Any number of Cloudflare zones can point at the same worker; domain globs in your rules separate them, and reverse-aliases are derived from the domain the mail arrived on.