paneedesign / database-swiftmailer-bundle
Database Spool Bundle for SwiftMailer and Symfony 3
Requires
- php: ^7.2.0
- doctrine/persistence: ^2.0
- symfony/flex: ^1.6
Requires (Dev)
- doctrine/annotations: ^1.8
- doctrine/doctrine-bundle: ^2.0
- doctrine/orm: ^2.7
- friendsofphp/php-cs-fixer: ^2.16
- phpstan/phpdoc-parser: ^0.4.2
- phpstan/phpstan: ^0.12.7
- phpstan/phpstan-doctrine: ^0.12.9
- phpstan/phpstan-phpunit: ^0.12.6
- phpstan/phpstan-symfony: ^0.12.4
- phpunit/phpunit: ^8.5
- symfony/browser-kit: ^4.3|^5.0
- symfony/config: ^4.3|^5.0
- symfony/dependency-injection: ^4.3|^5.0
- symfony/expression-language: ^4.3|^5.0
- symfony/form: ^4.3|^5.0
- symfony/framework-bundle: ^4.3|^5.0
- symfony/http-kernel: ^4.3|^5.0
- symfony/phpunit-bridge: ^5.0
- symfony/swiftmailer-bundle: ^3.2
- symfony/yaml: ^4.3|^5.0
- vimeo/psalm: ^3.8
Conflicts
- symfony/symfony: ^4.3|^5.0
This package is auto-updated.
Last update: 2024-11-05 20:59:44 UTC
README
Introduction
This bundle add a database driven swiftmailer spool to your Symfony 3 project. It requires Symfony 3.0+ and usage of entities with Doctrine ORM.
Features
- Auto Retrying: set a maximum number of retries that spool will try to send in case of failure
- Dashboard to list the email spool and perform some actions
- Retry sending an email
- Cancelling an email sending
- Resending an email
Installing
Add composer
Add the dependency to your composer.json
"require": { ... "paneedesign/database-swiftmailer-bundle" : "dev-master" }
Add bundle class in kernel
Register the bundle class and its dependencies in your AppKernel.php
public function registerBundles() { $bundles = array( ... new PaneeDesign\DatabaseSwiftMailerBundle\PedDatabaseSwiftMailerBundle(), ... ); }
Add routes
If you want to have a spool dashboard, add the following routes.
ped_database_swift_mailer: resource: "@PedDatabaseSwiftMailerBundle/Controller/" type: annotation prefix: /
Configuring
Update database
Update your database schema to create the necessary entities.
$ php bin/console doctrine:schema:update --force
Update swiftmailer config
Change your spool type from memory to db in your config.yml
spool: { type: db }
Overriding default templates
You may want to override the default template to have the look and feel of your application. You can do it following the official Symfony documentation: https://symfony.com/doc/3.4/templating/overriding.html
Running
To send emails that are in the database spool, just run the following command:
$ php bin/console swiftmailer:spool:send
You may add a cron job entry to run it periodically.
You can check the spool status with all emails at http://your_project_url/email-spool
ToDo List
- Filter emails
- Insert error message once it reaches the maximum of retries
- Last run date
- Count total sent
License
MIT