wemakecustom / swiftmailer-twig-bundle
此包已被弃用且不再维护。未建议替代包。
WeMakeCustom SwiftMailer 与 Twig 之间的桥梁
v1.1
2017-11-29 23:37 UTC
Requires
- php: >=5.3.3
- swiftmailer/swiftmailer: >=4.2.0,~5.0,~6.0
- symfony/dom-crawler: ~2.3|~3.0
- twig/twig: ~1.23|~2.0
This package is not auto-updated.
Last update: 2024-04-27 17:17:44 UTC
README
此包提供了一个使用 Twig 为 SwiftMailer 库创建邮件模板的简单方法。
此助手受到 FOSUB TwigSwiftMailer 的启发。
如果您使用 FOS 用户包,我们还提供了一种邮件服务替代方案以支持我们的附加功能。
安装
使用 Symfony
通过 composer 安装此扩展是最佳方式
首先,需要该包
composer require wemakecustom/swiftmailer-twig-bundle "^1.0"
其次,启用它
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new WMC\SwiftmailerTwigBundle\WMCSwiftmailerTwigBundle(), // ... ); }
最后,将 web_directory 参数配置为使用它
# config.yml parameters: web_directory: %kernel.root_dir%/../web
这样,您就完成了。
FOS 用户包集成
# config.yml fos_user: service: mailer: wmc.swiftmailer_twig.fosub
使用纯 Swiftmailer/Twig
通过 composer 安装此扩展是最佳方式
首先,需要该包
composer require wemakecustom/swiftmailer-twig-bundle "^1.0"
然后为 doctrine 的配置提供命名策略
<?php $swiftMailerTemplateHelper = new \WMC\SwiftmailerTwigBundle\TwigSwiftHelper($twig, $web_directory);
使用方法
它允许 Swift_Message 通过 Twig 模板进行填充。模板期望三个块(subject
,body_html
,body_text
)。如果在 body_html
块中找到具有类 inline-image
的本地图像(即 src
属性以单个正斜杠 /
开头),它将在电子邮件中内联,以便一些电子邮件客户端更容易渲染图像。
此助手作为服务 wmc.swiftmailer_twig
提供。要使用它,使用这三个参数调用 populateMessage
方法
- Swift_Message 对象
- 模板名称
- 模板数据数组
此助手依赖于 Symfony 的组件 DomCrawler,Twig 和 SwiftMailer。
示例
$data = []; // ... $data['recipient'] = ['name' => 'Jonh Smith', 'email' => 'recipient@example.com']; $message = $mailer->createMessage()->setTo(['recipient@example.com' => 'John Smith']); $swiftMailerTemplateHelper->populateMessage($message, 'AppBundle:Mail:my_email.mail.twig', $data); $mailer->send($message);
{# my_email.mail.twig #} {% block subject -%} My email Subject {%- endblock %} {% block body_text %} Hello {{ recipient.name }}, {# ... Awesome plain text email ... #} Best Regards, Keep being awesome! {% endblock %} {% block body_html %} <h3>Hello <strong>{{ recipient.name }}</strong>,</h3> <p> {# ... Awesome HTML email ... #} </p> <p> Best Regards,<br /> <em>Keep being awesome!</em> </p> {% endblock %}