Hey Mauticians ![]()
We’ve just released an open-source Amazon SES webhook handler plugin for Mautic 6+ and would love for the community to test it, use it, and help us catch any bugs.
GitHub: https://github.com/iamjpsingh/mautic-ses-plugin Packagist: composer require iamjpsingh/mautic-ses-plugin
What it does
If you’re using Amazon SES as your mailer in Mautic 6+, this plugin handles the SNS webhook callbacks so your Mautic instance automatically:
-
Marks contacts as Do Not Contact on hard bounces and spam complaints
-
Tracks all 10 SES event types — Bounce, Complaint, Delivery, Reject, Send, Open, Click, DeliveryDelay, Rendering Failure, and Subscription
-
Auto-confirms SNS subscriptions — no manual confirmation needed
-
Handles both SES v1 (
notificationType) and SES v2 (eventType) payload formats
It works with Symfony’s built-in symfony/amazon-mailer transport — no custom transport layer required.
Why we built this
The original etailors/mautic-amazon-ses plugin by @pm-pmaas is excellent but only supports Mautic 4/5. With Mautic 6 moving to Symfony 6.x and the new mailer architecture, we needed a rewrite. So we rebuilt it from scratch with:
-
Full support for all 10 SES event types (original handled 3)
-
SES v1 + v2 payload format support
-
Fix for the SES
"Display Name" <email>address format parsing issue -
SNS
UnsubscribeConfirmationhandling -
Modern PHP 8.2+ strict typing
-
Composer/Packagist installation (no manual file copying)
Installation
composer require iamjpsingh/mautic-ses-plugin
php bin/console cache:clear
php bin/console mautic:plugins:reload
Then set up your SNS topic, point the HTTPS subscription to your-domain.com , connect it to your SES identity’s notification settings, and you’re done. Full step-by-step setup guide is in the README.
Testing
You can verify it works immediately using SES simulator addresses:
-
bounce@simulator.amazonses.com→ should mark contact as DNC (Bounced) -
complaint@simulator.amazonses.com→ should mark contact as DNC (Unsubscribed) -
success@simulator.amazonses.com→ successful delivery logged
Requirements
-
Mautic 6.x / 7.x+
-
PHP 8.2+
-
symfony/amazon-mailer -
AWS account with SES + SNS
Looking for feedback
This is working well in our environment but we’d love more eyes on it. If you’re running SES with Mautic 6+, please give it a try and let us know:
-
Any issues with specific SES event types
-
Edge cases with different AWS regions or SES configurations
-
Anything that could be improved
Bug reports and PRs welcome on GitHub: https://github.com/iamjpsingh/mautic-ses-plugin/issues
License: GPL-3.0-or-later
Credit to @pm-pmaas for the original plugin that inspired this.