Skip to content

docs(inbound-email): document AWS SES adapter across greenfield frameworks#8

Open
mpge wants to merge 1 commit intodocs/attachment-downloaderfrom
docs/ses-parser
Open

docs(inbound-email): document AWS SES adapter across greenfield frameworks#8
mpge wants to merge 1 commit intodocs/attachment-downloaderfrom
docs/ses-parser

Conversation

@mpge
Copy link
Copy Markdown
Member

@mpge mpge commented Apr 24, 2026

Summary

Third inbound provider alongside Postmark + Mailgun. AWS SES receipt rules publish to an SNS topic; host apps subscribe via HTTP and SNS POSTs the envelope to the same `/...webhook/email/inbound` endpoint with `?adapter=ses` selecting the parser.

Implementation PRs:

Framework PR
escalated-go #36
escalated-dotnet #30
escalated-spring #33
escalated-phoenix #42
escalated-symfony #38

What's added

Each greenfield framework page (dotnet/spring/go/phoenix/symfony) gains an AWS SES subsection under Provider setup with:

  • The SNS subscription URL pattern and adapter label.
  • How to handle the one-time `SubscriptionConfirmation` envelope — the typed exception / tuple the parser returns + what the host controller should do with `SubscribeURL`.
  • Where to inject the `X-Escalated-Inbound-Secret` header when SNS itself doesn't forward custom headers (infrastructure-level: LB / API gateway / CDN / edge proxy).
  • What receipt rule action + encoding to choose for full MIME content delivery (`action.type=SNS`, `encoding=BASE64`) and the fallback behavior when the rule doesn't supply content (metadata-only routing still works via threading).

`_intro.md` now lists SES alongside Postmark + Mailgun and the adapter selector shows `postmark|mailgun|ses` in every framework row of the webhook URL table.

Phoenix page also shows the updated `:inbound_parsers` list including `SESParser`.

Stacked PR

Based on `docs/attachment-downloader` (#7). Merge order: #6#7 → this PR.

…works

Third provider alongside Postmark + Mailgun. AWS SES receipt rules
publish to an SNS topic; host apps subscribe via HTTP and SNS POSTs
the envelope to the same /...webhook/email/inbound endpoint, with
?adapter=ses selecting the parser.

Each greenfield framework page (dotnet/spring/go/phoenix/symfony)
gains an "AWS SES" subsection under Provider setup with:

  - SNS subscription URL and adapter label.
  - How to handle the one-time SubscriptionConfirmation envelope —
    the typed exception / tuple the parser returns + what the host
    controller should do with SubscribeURL.
  - Where to inject the X-Escalated-Inbound-Secret header when SNS
    itself doesn't forward custom headers (infrastructure-level:
    load balancer / API gateway / CDN / edge proxy).
  - What receipt rule action + encoding to choose for full MIME
    content delivery (action.type=SNS, encoding=BASE64), plus the
    fallback behavior when the rule doesn't supply content
    (metadata-only routing still works via threading).

_intro.md now lists SES alongside Postmark + Mailgun and the adapter
selector shows `postmark|mailgun|ses` in every framework row of the
webhook URL table.

Phoenix page additionally shows the updated :inbound_parsers list
that includes SESParser.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant