Open Think Deploy →

Outbound via the `send_email` binding (`env.SEB.send(EmailMessage)`) over a `mimetext`-built MIME envelope. Inbound via the Worker's `email()` handler — Email Routing forwards every message to `postal-mime.parse()` and Helm indexes it into a D1 `inbound_email` table. `email-send` is marked dangerous so selective-mode holds the draft for owner approval; `email-draft` is the read-only preview path. Pair with the `notifier` plugin to use email as the PA's primary push channel.

Install

1 · Config

Append to ENABLED_PLUGINS in wrangler.toml:

email

Wrangler config:

[[send_email]]
name = "SEB"
# destination_address = "you@example.com"  # optional restriction

2 · Secrets

Run each from your Worker project:

  • wrangler secret put OWNER_EMAIL The inbox the PA writes to and reads from.
  • wrangler secret put FROM_EMAIL optional — Sender address — domain must have Email Routing active.
Copy-paste .dev.vars template
OWNER_EMAIL=The inbox the PA writes to and reads from.
FROM_EMAIL=# optional — Sender address — domain must have Email Routing active.

3 · Steps

  1. dash → Email → Email Routing → enable on your sender domain
  2. Verify the destination address (your inbox) so SEB.send() can target it
  3. For inbound: dash → Email Routing → catch-all → Send to Worker → pick this Worker
  4. wrangler deploy

Tags

emailcloudflare-nativesend-emailinboxdangerous-by-default