dextervip/database-swiftmalier-bundle

SwiftMailer和Symfony 2的数据库Spool包

dev-master 2017-03-20 21:29 UTC

This package is auto-updated.

Last update: 2024-09-06 08:57:20 UTC


README

Scrutinizer Code Quality

简介

此包为您的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来实现。

  1. 创建一个新的空bundle,例如EmailBundle

  2. 编辑其bundle类并添加一个返回'CitraxDatabaseSwiftMailerBundle'的getParent()方法

class EmailBundle extends Bundle
{
    public function getParent()
    {
        return 'CitraxDatabaseSwiftMailerBundle';
    }
}
  1. 在您的新的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 %}
  1. 完成!

额外配置

??

运行

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

$ php app/console swiftmailer:spool:send

您可以将cron作业条目添加到定期运行它。

您可以在http://your_project_url/email-spool上检查spool状态以及所有邮件

待办事项

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

许可证

MIT