qckanemoto / twigged-swiftmessage-builder
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: 2022-02-01 12:41:32 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'
。因此,如果你使用此功能,你必须将mbstring.language
在php.ini中设置或调用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);
享受吧!
查看功能测试以了解基本用法。