Receive email as parsed JSON with its verdicts

Mail to your receiving domain arrives as email.received: headers, text, HTML and attachments, with up to 256 KB of it in the webhook.

Inbound

Question about order 10452

Receivedinbound.fernbank.example

  • SPF pass
  • DKIM pass
  • DMARC pass
  • Spam pass
  • Virus pass
From
rui.okafor@example.net
To
support@inbound.fernbank.example
Envelope
support+order-10452@inbound.fernbank.example

Routing

  1. Receivedscanned
  2. Matchedrule support++1 s
  3. Postedemail.received, 200+2 s

Two records turn receiving on

Publish both and mail to the domain starts arriving as events.

MX
10 inbound-smtp.<region>.amazonaws.com
TXT
the key that signs mail forwarded from it

Route by address, plus-address or catch-all

The most specific rule wins; mail no rule takes goes to every endpoint subscribed to email.received.

Rules on inbound.fernbank.example
MatchesRuleThen
support@the addresspost to the support endpoint
support+*@the plus basepost with the token
*@the catch-allforward to a confirmed address

Verdicts a sender cannot write

They come from the receiving servers' own checks, never from the message's headers.

"verdicts": {
  "spf": "pass", "dkim": "pass", "dmarc": "pass",
  "spam": "pass", "virus": "pass"
}
In the data of email.received

The envelope says who it was really for

received_for lists the addresses the mail was delivered for, Bcc and catch-all included.

"received_for": ["support+ticket4471@inbound.fernbank.example"]
A plus-address keeps its token

Forwarding goes only to confirmed addresses

Only clean mail, sealed so the next server can trust it, and never more than 3 hops on.

  1. Addeddesk@fernbank.example, in the console
  2. Repliedfrom that mailbox, within 72 hours
  3. Confirmedmail may now be forwarded to it

Limits, keys and downloads

Questions

Can I read mail without a webhook?

Yes: the API returns received mail in the same shape.

How large can a message be?

Up to 40 MB, with up to 100 attachments.