ttskch / twigged-swiftmessage-builder
基于 Twig 模板的 Swift_Message 构建服务。
2.0.0
2016-09-23 08:59 UTC
Requires
- php: >=5.3.3
- swiftmailer/swiftmailer: 5.2.1
- tijsverkoyen/css-to-inline-styles: ~1.5
- twig/twig: ~1.12
Requires (Dev)
- phake/phake: ~2.0@dev
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-10 21:52:04 UTC
README
TwiggedSwiftMessageBuilder
类允许您进行以下操作
- 创建 Twig 模板化的 Swift_Message
- 从未设置样式的 HTML 和 CSS 字符串创建内联样式的 HTML 邮件
- 将某些图像文件嵌入到消息体中
需求
- PHP 5.3+
入门
首先将此依赖项添加到您的 composer.json
{ "require": { "ttskch/twigged-swiftmessage-builder": "~2.0" } }
然后您可以像下面这样发送 Twig 模板化的电子邮件
{# email.txt.twig #} {% block from %}no-reply@example.com{% endblock %} {% block from_name %}[Example]{% endblock %} {% block subject %}Welcome to [Example]!{% endblock %} {% block body %} Hello [Example] World! {% endblock %}
// in your application. $builder = new \Ttskch\TwiggedSwiftMessageBuilder\TwiggedSwiftMessageBuilder($tiwg); // $twig is an instance of \Twig_Environment class. $message = $builder->buildMessage('email.txt.twig'); $message->setTo('hoge@example.com'); $mailer->send($message); // $mailer is an instance of \Swift_Mailer class.
在 Twig 模板中,您可以通过使用 {% block [field-name] %}{% endblock %}
定义许多内容。以下字段可以定义:
- 发件人
- 发件人姓名
- 收件人
- 抄送
- 密送
- 回复地址
- 主题
- 正文
在 Twig 模板中使用变量
当然,您可以将变量传递到 Twig 模板中,如下所示
{# email.txt.twig #} {% block subject %}Welcome to {{ site_title }}!{% endblock %}
// in your application. $builder = new \Ttskch\TwiggedSwiftMessageBuilder\TwiggedSwiftMessageBuilder($tiwg); $message = $builder->buildMessage('email.txt.twig', array( 'site_title' => 'FooBar Service', )); $message->setTo('hoge@example.com'); $mailer->send($message);
使用内联样式的 HTML 邮件
您可以从未设置样式的 HTML 和 CSS 字符串创建内联样式的 HTML。为了使 HTML 邮件的收件人能够在 Gmail 中接收它,您必须创建内联样式的 HTML 正文。
// in your application. $builder = new \Ttskch\TwiggedSwiftMessageBuilder\TwiggedSwiftMessageBuilder($tiwg); $message = $builder->buildMessage('email.html.twig'); $style = file_get_contents('/path/to/style.css'); $message = $builder->setInlineStyle($message, $style); $mailer->send($message);
注意
此功能内部使用
mb_convert_encoding()
与'auto'
。因此,如果您使用此功能,您必须强烈建议在 php.ini 中设置mbstring.language
或在前面调用mb_language('your_language')
。注意
此功能内部使用
mb_convert_encoding()
与'auto'
。因此,您必须在 php.ini 中设置mbstring.language
或在前面执行mb_language('Japanese')
。
将某些图像文件嵌入到消息体中
您可以将图像嵌入到消息体中,如下所示
{# email.html.twig #} {% block body %} <img src="{{ embed_image(image_path) }}"/> {% endblock %}
// in your application. $builder = new \Ttskch\TwiggedSwiftMessageBuilder\TwiggedSwiftMessageBuilder($tiwg); $message = $builder->buildMessage('email.html.twig', array( 'image_path' => '/path/to/image/file', )); // you can get renderable html with base64 encoded images. (In case you want to print preview.) $renderableHtml = $builder->renderBody($message); // you must finalize embedding before send message. $message = $builder->finalizeEmbedding($message); $mailer->send($message);
享受!
请参阅 功能测试 以了解基本用法。