This bundle is tested with Symfony 3 and PHP 7.1 with Swiftmailer and Mailgun Transport
MailgunAdminBundle simply register ids of emails sent from Mailgun in DB and offers
Just pull the vendor:
composer require copromatic/mailgun-admin-bundle
(Optional) Set up a connection for the bundle, will use "default" if not specified
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mailgun_admin:
connection: default
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
MailgunAdminBundle: ~
...
mailgun_admin:
api_key: '%mailgun_api_key%'
entity_manager: 'mailgun_admin'
Then update your database:
php [bin|app]/console doctrine:schema:update --force [--em=mailgun_admin]
Or
php [bin|app]/console doctrine:migration:diff
and php [bin|app]/console doctrine:migration:migrate
if you roll with migrations
A Swiftmailer listener waits for an email sent, it registers it to the DB if it bears a Message-Id (set up by Mailgun)
8 tables:
One for messages (mailgun can set their same id to multiples emails if they are sent at the same time)
7 for trackers:
bounces, clicks, deliveries, failures, opens, spam reports
- ! tests !
- Implement unsubscribe tracking
- Services to access content easily
- Twig extensions to display data
Yannis Touili
Code and documentation copyright 2012-2017. Code released under the MIT License.