dextervip / database-swiftmalier-bundle
SwiftMailer和Symfony 2的数据库Spool包
dev-master
2017-03-20 21:29 UTC
Requires
- php: >=5.3.0
- knplabs/knp-paginator-bundle: ~2.4
- stof/doctrine-extensions-bundle: ~1.1@dev
- symfony/swiftmailer-bundle: ~2.3
This package is auto-updated.
Last update: 2024-09-06 08:57:20 UTC
README
简介
此包为您的Symfony 2项目添加一个数据库驱动的SwiftMailer spool。它需要Symfony 2.4+以及使用Doctrine ORM的实体。
功能
- 自动重试:设置spool在失败情况下尝试发送的最大重试次数
- 仪表板以列出邮件spool并执行一些操作
- 重试发送邮件
- 取消邮件发送
- 重新发送邮件
安装
添加composer
在composer.json中添加依赖
"require": { ... "dextervip/database-swiftmalier-bundle" : "dev-master" }
在kernel中添加bundle类
在AppKernel.php中注册bundle类及其依赖
public function registerBundles() { $bundles = array( ... new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(), new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(), new Citrax\Bundle\DatabaseSwiftMailerBundle\CitraxDatabaseSwiftMailerBundle(), ... ); }
添加路由
如果您想拥有一个spool仪表板,请添加以下路由。
citrax_database_swift_mailer: resource: "@CitraxDatabaseSwiftMailerBundle/Controller/" type: annotation prefix: /
配置
更新数据库
更新数据库模式以创建必要的实体。
$ php app/console doctrine:schema:update --force
更新SwiftMailer配置
在config.yml中将spool类型从内存更改为db
spool: { type: db }
覆盖默认模板
您可能希望覆盖默认模板以使外观和感觉与您的应用程序相匹配。您可以通过创建一个新的bundle并定义其父类为CitraxDatabaseSwiftMailerBundle来实现。
-
创建一个新的空bundle,例如EmailBundle
-
编辑其bundle类并添加一个返回'CitraxDatabaseSwiftMailerBundle'的getParent()方法
class EmailBundle extends Bundle { public function getParent() { return 'CitraxDatabaseSwiftMailerBundle'; } }
- 在您的新的bundle中创建一个twig模板,例如在Resources/views/layout.html.twig中,并编辑它以适应您的应用程序布局。请参见以下示例
{% extends 'AppBundle::base.html.twig' %} {% block title %}Email Spool{% endblock %} {% block body %} {% block database_swiftmailer_content %}{% endblock %} {% endblock %}
- 完成!
额外配置
??
运行
要发送数据库spool中的邮件,只需运行以下命令
$ php app/console swiftmailer:spool:send
您可以将cron作业条目添加到定期运行它。
您可以在http://your_project_url/email-spool上检查spool状态以及所有邮件
待办事项
- 过滤邮件
- 达到最大重试次数后插入错误信息
- 最后运行日期
- 计算总发送量
许可证
MIT