Alien now provisions email infrastructure as a resource. Your product can send and receive mail on domains your customer owns, from inside their own cloud account — their sending reputation, their DKIM keys, their data.
const inbound = new alien.Storage("inbound").build()
const events = new alien.Queue("email-events").build()
const email = new alien.Email("email")
.domains(["mail.acme.com"])
.inbound(inbound)
.events(events)
.build()Declared domains are verified with DKIM set up automatically. Inbound mail lands in the linked storage bucket, ready for your workload to parse. Delivery, bounce, and complaint events flow into the linked queue, so suppression lists and deliverability monitoring are ordinary queue consumers.
Domains don't have to be fixed at install time. With the
email/manage-identities grant, your workload can create and remove domain
identities at runtime — the flow a multi-tenant product needs when each of its
users brings their own domain.
- Customer-owned — identities, reputation, and mail live in their account, not a shared sender
- Send and receive — outbound with
email/send, inbound to a bucket you control - Runtime domains — add and remove verified domains from your app, not from IaC
- Event stream — bounces and complaints as queue messages
The Email resource is currently available only on AWS, backed by SES.