跳转至

模板

模板是一种可重用的 HTML 设计,可用于活动和事务性消息。最常见的是,模板具有标准的页眉和页脚区域,包含徽标和品牌元素,活动内容插入在中间。stmails 支持 Go 模板 表达式,让您可以创建强大的动态 HTML 模板。它还集成了 100 多个有用的 Sprig 模板函数

活动模板

活动模板用于电子邮件活动。这些模板在 UI 的 活动 -> 模板 下创建和管理,并在创建新活动时选择。

事务性模板

事务性模板用于使用事务性 API 发送任意事务性消息。这些模板在 UI 的 活动 -> 模板 下创建和管理。

模板表达式

在活动和模板正文中可以使用多个模板函数和表达式。它们以 {{ .Subscriber.Email }} 的形式编写,即在双大括号 {{}} 之间的表达式。

订阅者字段

表达式 说明
{{ .Subscriber.UUID }} 订阅者随机生成的唯一 ID
{{ .Subscriber.Email }} 订阅者的电子邮件 ID
{{ .Subscriber.Name }} 订阅者的姓名
{{ .Subscriber.FirstName }} 订阅者的名字(自动从姓名中提取)
{{ .Subscriber.LastName }} 订阅者的姓氏(自动从姓名中提取)
{{ .Subscriber.Status }} 订阅者的状态(启用、禁用、加入黑名单)
{{ .Subscriber.Attribs }} 任意属性的映射。可以使用 . 访问字段,例如:.Subscriber.Attribs.city
{{ .Subscriber.CreatedAt }} 订阅者首次添加时的时间戳
{{ .Subscriber.UpdatedAt }} 订阅者修改时的时间戳
表达式 说明
{{ .Campaign.UUID }} 活动随机生成的唯一 ID
{{ .Campaign.Name }} 活动的内部名称
{{ .Campaign.Subject }} 活动的电子邮件主题
{{ .Campaign.FromEmail }} 发送活动的电子邮件地址

函数

函数 说明
{{ Date "2006-01-01" }} Go 日期布局 打印当前日期时间
{{ TrackLink "https://link.com" }} 获取 URL 并生成跟踪 URL。用于活动正文和模板。
https://link.com@TrackLink TrackLink 的简写。例如:<a href="https://link.com@TrackLink">链接</a>
{{ TrackView }} 插入单个跟踪像素。应该只使用一次,最好在模板页脚中。
{{ UnsubscribeURL }} 退订和管理首选项 URL。适合在模板页脚中使用。
{{ MessageURL }} 查看电子邮件消息托管版本的 URL。
{{ OptinURL }} 双重确认页面的 URL。
{{ Safe "<!-- comment -->" }} 按原样添加任何 HTML 代码。

Sprig 函数

stmails 集成了 Sprig 库,提供了 100 多个用于处理字符串、数字、日期等的实用函数,可用于模板中。有关完整函数列表,请参阅 Sprig 文档

示例模板

表达式 {{ template "content" . }} 应该在每个模板中只出现一次,表示插入电子邮件内容的位置。这是一个示例 HTML 电子邮件,具有固定的页眉和页脚,内容插入在中间。

<!DOCTYPE html>
<html>
  <head>
    <style>
      body {
        background: #eee;
        font-family: Arial, sans-serif;
        font-size: 6px;
        color: #111;
      }
      header {
        border-bottom: 1px solid #ddd;
        padding-bottom: 30px;
        margin-bottom: 30px;
      }
      .container {
        background: #fff;
        width: 450px;
        margin: 0 auto;
        padding: 30px;
      }
    </style>
  </head>
  <body>
    <section class="container">
      <header>
        <!-- 这将出现在所有电子邮件的页眉中。
             订阅者的名字将自动插入这里。 //-->
        Hi {{ .Subscriber.FirstName }}!
      </header>

      <!-- 这是插入电子邮件正文的位置 //-->
      <div class="content">
        {{ template "content" . }}
      </div>

      <footer>
        Copyright 2019. All rights Reserved.
      </footer>

      <!-- 跟踪像素将插入这里 //-->
      {{ TrackView }}
    </section>
  </body>
</html>

信息

对于纯文本活动,创建一个没有 HTML 内容的模板,只包含占位符 {{ template "content" . }}

示例活动正文

活动正文可以使用内置的 WYSIWYG 编辑器或原始 HTML 文档编写。假设订阅者有一组定义的属性,此示例显示如何在活动中渲染这些值。

嘿,你注意到模板如何显示你的名字了吗?
你的姓氏是 {{.Subscriber.LastName }}。

你已经完成了 {{ .Subscriber.Attribs.projects }} 个项目。


{{ if eq .Subscriber.Attribs.city "Bengaluru" }}
  你住在班加罗尔!
{{ else }}
  你住在哪里?
{{ end }}


这是一个你可以点击的链接,它将被跟踪。
<a href="{{ TrackLink "https://google.com" }}">Google</a>

上面的示例使用 if 条件根据订阅者属性的值显示两条消息之一。使用 Go 模板表达式可以实现许多这样的动态表达式。

系统模板

系统模板用于渲染面向用户的公共页面,如订阅管理页面,以及自动生成的系统电子邮件,如确认订阅的电子邮件。这些都捆绑在 stmails 中,但可以通过在本地复制静态目录并使用 ./stmails --static-dir=your/custom/path 标志将其路径传递给 stmails 来自定义。

公共页面

/static/public/
index.html 所有页面使用的基本模板,包含页眉和页脚。
home.html 根域名上的登录页面,带有登录按钮。
message.html 通用成功/失败消息页面。
optin.html 确认订阅页面。
subscription.html 订阅管理页面,包含数据导出和删除选项。
subscription-form.html 列表选择和订阅表单页面。

要使用 CSS 和 Javascript 编辑公共页面的外观,请转到设置 > 外观 > 公共:

image

系统电子邮件

/static/email-templates/
base.html 所有系统生成的电子邮件使用的基本模板,包含页眉和页脚。
campaign-status.html 在活动开始、完成等时发送给管理员的电子邮件通知。
import-status.html 在导入作业完成时发送给管理员的电子邮件通知。
subscriber-data.html 当订阅者请求其私人数据的完整转储时发送的电子邮件。
subscriber-optin.html 当未确认的订阅者被添加时发送的自动确认订阅电子邮件。
subscriber-optin-campaign.html 从列表页面启动确认订阅活动时插入到活动正文中的电子邮件内容。
default.tpl 首次安装 stmails 时在活动 -> 模板中创建的默认活动模板。之后不再使用。

信息

要将系统电子邮件模板转换为纯文本,请从 base.html 中删除 <!doctype html>,并从模板中删除所有 HTML 标签,同时保留 Go 模板代码。