paneedesign/database-swiftmailer-bundle

SwiftMailer 和 Symfony 3 的数据库队列扩展包

v3.0.0-beta.1 2021-05-19 07:07 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Build Status

简介

此包为您的 Symfony 3 项目添加一个数据库驱动的 SwiftMailer 队列。它需要 Symfony 3.0+ 及 Doctrine ORM 的实体使用。

特性

  • 自动重试:设置队列在失败时尝试发送的最大重试次数
  • 仪表板以列出邮件队列并执行一些操作
  • 重试发送邮件
  • 取消发送邮件
  • 重新发送邮件

安装

添加 composer

在 composer.json 中添加依赖

    "require": {
        ...
        "paneedesign/database-swiftmailer-bundle" : "dev-master"
    }

在 kernel 中添加包类

在 AppKernel.php 中注册包类及其依赖

    public function registerBundles()
    {
        $bundles = array(
        ...
        new PaneeDesign\DatabaseSwiftMailerBundle\PedDatabaseSwiftMailerBundle(),
        ...
        );
    }

添加路由

如果您想要一个队列仪表板,请添加以下路由。

ped_database_swift_mailer:
    resource: "@PedDatabaseSwiftMailerBundle/Controller/"
    type:     annotation
    prefix:   /

配置

更新数据库

更新数据库模式以创建必要的实体。

$ php bin/console doctrine:schema:update --force

更新 SwiftMailer 配置

在 config.yml 中将队列类型从内存更改为数据库

    spool:     { type: db }

覆盖默认模板

您可能想覆盖默认模板以使其具有您应用程序的外观和感觉。您可以按照官方 Symfony 文档操作:https://symfony.com.cn/doc/3.4/templating/overriding.html

运行

要发送数据库队列中的邮件,只需运行以下命令

$ php bin/console swiftmailer:spool:send

您可以在 cron 任务中添加条目以定期运行它。

您可以通过 http://your_project_url/email-spool 查看队列状态以及所有邮件

待办事项列表

  • 过滤邮件
  • 达到最大重试次数后插入错误信息
  • 上次运行日期
  • 总发送次数

许可

MIT