fredtro / mailer-bundle
Symfony2扩展包,用于使用twig模板发送电子邮件。
1.0.0
2017-11-20 21:00 UTC
Requires
- php: ^5.5.9 || ^7.0
- swiftmailer/swiftmailer: ^4.3 || ^5.0 || ^6.0
- symfony/twig-bundle: ^2.7 || ^3.0
- twig/twig: ^1.28 || ^2.0
Requires (Dev)
- phpunit/phpunit: ~4.8|~5.0
- symfony/phpunit-bridge: ^2.7 || ^3.0
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)。