thecodingmachine/swift-twig-mail-template

该软件包包含SwiftMailTemplate接口的实现,它使用twig来渲染邮件消息。

v5.1.0 2018-10-12 15:24 UTC

This package is auto-updated.

Last update: 2024-09-13 04:18:36 UTC


README

Build Status Coverage Status Scrutinizer Quality Score Code Coverage Open Source Love Open Source Love

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类有很多相似之处。您可以

  • 设置发件人地址
  • 设置发件人姓名
  • 设置收件人地址
  • 设置收件人姓名
  • 设置密送地址
  • 设置密送姓名
  • 设置抄送地址
  • 设置抄送姓名
  • 设置回复地址
  • 设置回复姓名
  • 设置最大行大小
  • 设置优先级
  • 设置阅读回执地址
  • 设置退信地址