serendipity_hq/aws-ses-monitor-bundle
A Symfony bundle for monitoring Amazon SES: ingest SNS bounce, complaint, and delivery notifications, track sending statistics, and expose configurable dashboards and alerts to keep email deliverability healthy.
bounced_at / complained_at column pair plus a pre-send check is the minimum viable suppression list. Natural follow-ons: soft-bounce retry windows, per-domain reputation views, admin UI for manual un-suppression, and audit trail for compliance.Consider it when:
Look elsewhere — or budget for significant glue — when:
composer require path to a working integration. Expect a service provider, config, migration for the suppression table, a queued SNS webhook controller with signature verification, and a replacement for the SwiftMailer filter (Laravel uses Symfony Mailer/its own mailer). Realistically several days, plus you now maintain a fork.To executives: This closes a compliance and availability gap. AWS requires SES senders to process bounces and complaints; ignoring them degrades our sending reputation and can get our email capability suspended, which breaks password resets, receipts, and customer notifications. The package gives us the standard implementation for a few days of integration effort instead of a multi-week build. The caveat is that it is a small, single-maintainer open-source project with essentially no adoption, so we treat it as a design we own — we vendor it, and we accept maintenance cost. Low financial risk, meaningful risk reduction.
To engineering: It is a Symfony bundle, so on Laravel it is a reference implementation, not a dependency. The valuable parts are the SNS topic/subscription provisioning command, the notification-to-suppression-state mapping, and the pre-send filter. Recommendation: adopt directly if we are on Symfony and can pin/vendor it; otherwise budget a focused spike to port those three pieces, and evaluate SES event destinations in parallel if we expect to need deliverability reporting beyond suppression. Either way we should own the suppression table as first-class product data, not an implementation detail of a third-party package.
How can I help you explore Laravel packages today?