fredtro/mailer-bundle

Symfony2扩展包,用于使用twig模板发送电子邮件。

安装: 14

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2017-11-20 21:00 UTC

This package is not auto-updated.

Last update: 2024-09-18 04:38:47 UTC


README

提供使用twig模板发送电子邮件的mailer。最初受FOSUserBundle TwigSwiftMailer启发。

安装

步骤1:下载扩展包

打开命令行,进入项目目录,并执行以下命令以下载此扩展包的最新稳定版本

$ composer require fredtro/mailer-bundle "^1.0"

此命令要求您全局安装Composer,如Composer文档的安装章节中所述。

步骤2:启用扩展包

然后,通过将其添加到项目app/AppKernel.php文件中注册的扩展包列表来启用扩展包

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Fredtro\MailerBundle\FredtroMailerBundle(),
        );

        // ...
    }

    // ...
}

步骤3:配置

至少需要配置发件人地址。姓名是可选的。

fredtro_mailer:
    from:
        address: foo@example.com
        name: Example Customer Service

步骤4:发送电子邮件

定义一个twig模板

{% block subject %}subject{% endblock %}
{% block text %}Hello {{username}}!{% endblock %}
{% block html %}<h1>Hello {{username}}!</h1>{% endblock %}

发送邮件

public function someAction(){

    $mailer = $this->get('fredtro.mailer');
    $mailer->send('template.twig', 'bar@example.com', ['username' => 'fred']);
}

附加功能

回调

为了在发送之前访问创建的\Swift_Message,您可以传递一个回调(Closure的实例)。您可以使用此功能,例如添加附件、设置回复或与消息对象相关的一切。

public function someAction(){

    $mailer = $this->get('fredtro.mailer');
    $mailer->send('template.twig', 'bar@example.com', ['username' => 'fred'], function(\Swift_Message $message){
        //do your modifications here
        $message->setFrom(['somebodyelse@example.com']);
    });
}

事件

Before sending email: Fredtro\MailerBundle\Event\MailerEvents::BEFORE_EMAIL_SENT

After sending email: Fredtro\MailerBundle\Event\MailerEvents::EMAIL_SENT

两者都使用Symfony的通用事件类。EMAIL_SENT事件还提供了包含swift结果的属性'sent'(Mailer)。