All posts
·6 min read

Amazon SES is now a first-class source in BigStats.

SES configuration-set events now flow into BigStats over Amazon SNS with verified signatures and automatic subscription confirmation — the same delivery health, retries, alerts and analyst your GreenArrow, KumoMTA and SignalMTA traffic already gets.

A large share of the senders we talk to don't run their own MTA at all — they send through Amazon SES and watch delivery health in CloudWatch dashboards that were built for infrastructure metrics, not for deliverability work. Today that changes: Amazon SES is a first-class event source in BigStats, alongside GreenArrow Engine, KumoMTA and SignalMTA.

Point a configuration set's event destination at an SNS topic, subscribe your BigStats ingest URL, and SES events land in the same reports, alerts and analyst as everything else you send. Setup takes about five minutes and the onboarding wizard walks through it step by step.

What gets ingested

BigStats subscribes to the SES event types that matter for delivery health: Send, Delivery, DeliveryDelay, Bounce, Complaint and Reject. Each notification is normalized into the same event model every other source uses, so a mixed estate — say, transactional mail on SES and marketing on GreenArrow — rolls up into one dashboard, one alert feed and one API.

  • Deliveries, bounces and deferrals (DeliveryDelay) feed the same message-outcome and retry views, including deferral recovery tracking.
  • Bounce and complaint events carry SES's bounce type, subtype and diagnostic response into bounce forensics.
  • The configuration set name becomes the Virtual MTA, so multiple configuration sets report as separate streams.
  • A tenant message tag splits reporting per client — the SES equivalent of per-customer subaccounts.

Security: verified SNS, not an open webhook

An ingest endpoint that accepts unauthenticated JSON is a data-poisoning attack waiting to happen. The SES endpoint verifies the SNS message signature against Amazon's published signing certificate before accepting anything, on top of the per-workspace ingest key every source uses. Subscription confirmation happens automatically — you paste the URL into SNS once and BigStats handles the handshake.

The honest caveat: shared IPs

SES does not report which shared IP address sent a given message, so shared-pool sending appears as "SES shared" in the Sending IP view rather than per-IP. If you send from a dedicated IP pool, the pool name is reported and you get per-pool breakdowns. Blocklist monitoring likewise covers dedicated IPs; Amazon manages the reputation of its shared pool itself.

What you get on day one

CapabilitySES traffic
Message outcomes & retriesDelivered, bounced, deferred, recovered — counted per message, not per attempt
Bounce forensicsSES bounce types and diagnostic text, classified and ranked
AlertsThreshold, anomaly, escalation, Slack and webhook — same rules as every other source
Analyst & MCPAsk questions across SES and self-hosted traffic in one place
Tenant viewsPer-client reporting via the tenant message tag

The setup guide lives in the onboarding wizard, in Settings under Amazon SES, and in the docs. If you already send through SES, you can have live delivery health in front of you before your coffee goes cold.

Try it on your own stream

Point your MTA's event notifications at BigStats and get ISP-level delivery health, bounce forensics and configurable exports on your real sending data.