Aeion Notifications + Email Providers
Aeion Notifications is the orchestrator; the providers are the bare delivery relays. SendGrid and Resend send natively via their HTTP APIs; Mailgun, Postmark, AWS SES, and any other relay connect through generic SMTP. Pick one active provider per tenant and swap it in Company Settings without a code change — automatic retry with exponential backoff covers transient failures, and delivery-status webhooks from SendGrid, Mailgun, Postmark, and SES all feed the same `notification.email.*` event stream regardless of which provider sent the bytes.
Supported Email Providers
`
Provider Configuration + Retry Behavior
```typescript
Per-Domain Authentication Setup
```bash
Bounce + Complaint Event Tracking
```typescript
FAQ
Yes. Per-tenant credentials. Aeion never has cross-tenant access.
Yes. Per-tenant authenticated domain. Per-tenant DKIM keys.
No cross-provider failover exists — retries target the same configured provider, with exponential backoff (default 3 attempts: 1s, 2s, 4s delays via `EMAIL_RETRY_ATTEMPTS`/`EMAIL_RETRY_DELAY_MS`). If the configured provider is down, sends fail after retries exhaust until you reconfigure.
SendGrid's Categories are exposed via Aeion's `tags` option on a send. Provider-specific features beyond that (Mailgun tagging, etc.) aren't wired up since those providers connect via generic SMTP, not a native API adapter.
Aeion doesn't maintain its own cross-provider suppression list. Recipient opt-out is a per-user, per-channel preference (a master toggle for the "email" channel), separate from any bounce/complaint-driven suppression your provider manages on its own side.
Yes. Verification is fail-closed and tenant-scoped: SendGrid uses its ECDSA signed-event headers over the raw body, Mailgun uses HMAC-SHA256 with freshness and single-use token checks, Postmark uses configured HTTP Basic Authentication, and SES verifies the SNS RSA signature, trusted certificate URL, and exact TopicArn. Configure the separate Email Webhook Security singleton before enabling a provider webhook; an unconfigured route returns 503 rather than accepting unsigned traffic.
Tenant admins can call `GET /notifications/webhooks/email/readiness` for a secret-free configuration summary. Prometheus exposes `notifications_email_webhook_security_total` for verification failures, missing configuration, replay detection, and replay-protection outages, plus `notifications_email_webhook_events_total` for processed and deduplicated events. Both counters are labeled by tenant and provider. Aeion also ships a five-alert Prometheus rule pack covering authentication bursts, unconfigured verification, replay attempts, replay-store outages, and deduplication retry storms, with a response runbook for each alert.
Each tenant supplies its own provider API key or SMTP credentials via Company Settings — isolation comes from tenants using separate provider accounts, not from Aeion provisioning sub-accounts on a shared one.
That's managed on the provider's side (SendGrid/Mailgun/etc. dashboards) — Aeion doesn't schedule or monitor IP warm-up.
No automatic per-region routing — a tenant configures one active provider. If you need EU data residency, choose a provider with EU infrastructure (e.g. Mailgun EU) as that tenant's configured provider.
Cost follows whichever single provider you pick. SES is typically cheapest per email at volume; SendGrid/Postmark cost more but prioritize deliverability and native-API features. Since only one provider is active per tenant, weigh cost vs. deliverability up front, or swap providers via Company Settings if volume patterns change.
Yes. Per-tenant SMTP credentials, configurable TLS certificate validation, and optional connection pooling.
Provider-agnostic email infrastructure.
SendGrid + Resend + Mailgun + Postmark + SES + SMTP — pluggable per tenant, swap providers without a code change.