thecodingmachine / swift-twig-mail-template
该软件包包含SwiftMailTemplate接口的实现,它使用twig来渲染邮件消息。
v5.1.0
2018-10-12 15:24 UTC
Requires
- php: >=7.0.0
- thecodingmachine/swift-mail-template-interface: ^5.0
- twig/twig: ~1.27 || ~2.0
Requires (Dev)
- phpunit/phpunit: ^5.7.22
README
Swift Twig 邮件生成器
该软件包接收一个Twig模板,并从这个模板生成Swift邮件。
安装
composer require thecodingmachine/swift-twig-mail-template
安装后,您可以从SwiftTwigMailTemplate
类创建一个实例。
SwiftTwigMailTemplate
表示一个可以生成Swift邮件的邮件模板。
示例
因为我们认为示例比其他所有东西都好...
首先创建您的邮件模板。您的模板应该有两个区块
{% block subject %} Your suject {% endblock %} {% block body_html %} Body with HTML. {% endblock %}
如果您愿意,可以添加另一个包含文本正文的区块。这个区块是可选的,因为我们可以直接从HTML中获取文本正文。
{% block body_text %} Body without HTML. {% endblock %}
此外,您还可以创建一个只有文本正文(没有HTML)的邮件
{% block subject %} Your suject {% endblock %} {% block body_text %} Body with text only. {% endblock %}
现在,让我们创建一个SwiftTwigMailTemplate
实例。此对象将根据twig模板生成一个SwiftMail
。
// We assume that $twigEnvironment is a valid TwigEnvironment instance $twigSwiftMailTemplate = new SwiftTwigMailTemplate($twigEnvironment, 'path/to/template.twig'); // The renderMail method generates a Swift mail object. $swiftMail = $twigSwiftMailTemplate->renderMail(['paramKey' => paramValue]); // We fill the swift mail with additional information $swiftMail->setFrom('sender@example.com'); $swiftMail->setTo('recipient@example.com'); // We assume that $mailer is a valid Swift_Mailer instance $mailer->send($swiftMail);
您还可以通过使用embedImage函数直接将图像嵌入到电子邮件中。通过将图像嵌入到电子邮件中,大多数邮件客户端将直接显示图像,而不会打印传统的警告。
注意:embedImage需要一个参数:图像文件的完整路径。
{% block subject %} Welcome ! {% endblock %} {% block body_html %} <img src="{{ embedImage(constant('ROOT_PATH')~'/public/img/header.png') }}" alt="header"> <h1>Hello World!</h1> {% endblock %}
进一步了解
SwiftTwigMailTemplate
类是考虑到依赖注入而设计的。实例可以很容易地放入您的容器中以便于重用。此外,SwiftTwigMailTemplate
类与Swift_Mail
类有很多相似之处。您可以
- 设置发件人地址
- 设置发件人姓名
- 设置收件人地址
- 设置收件人姓名
- 设置密送地址
- 设置密送姓名
- 设置抄送地址
- 设置抄送姓名
- 设置回复地址
- 设置回复姓名
- 设置最大行大小
- 设置优先级
- 设置阅读回执地址
- 设置退信地址