邮戳模板:将 html 处理为文本而不是 html 的动态变量

Posted

技术标签:

【中文标题】邮戳模板:将 html 处理为文本而不是 html 的动态变量【英文标题】:Postmark template: dynamic variable with html processed as text instead of html 【发布时间】:2021-03-11 05:52:40 【问题描述】:

我有一个 Postmark 电子邮件模板,其中动态变量包含 html。但是,它将 html 处理为纯文本。

更具体地说,我有下面的代码。变量body 被发送到电子邮件模板,但<br><br> 显示为文本,而不是转到下一行。

在控制器中:

const body = "Hi...<br><br> Welcome to our a new episode.";
client.sendEmailWithTemplate(
    
        TemplateAlias: process.env.POSTMARK_TEMPLATE,
        TemplateModel: 
            body: body
        ,
        From: from,
        To: email,
    );

在邮戳模板中:

<tr>
  <td>
    1. The following includes text with a br break: body
  </td>
</tr>
<tr>
  <td>
    2. This line includes a br break directly in the template: How are you? <br> Anything new?
  </td>
</tr>

这会产生一封电子邮件,其中 br 中断在位置 2 上起作用,但在位置 1 上不起作用。在位置 1 上,&lt;br&gt; &lt;br&gt; 显示为文本:“&lt;br&gt; &lt;br&gt;”。

我做错了什么?

【问题讨论】:

【参考方案1】:

邮戳支持提供了答案:

我们通常会转义 HTML,但您可以通过使用它来解决这个问题 变量的语法:

body 或 &body

三重大括号或 & 符号可以让您将 HTML 放入其中 填充 TemplateModel 值时的变量。

【讨论】:

你知道我们是否可以在键“TextBody”的直接值中使用我们自己的 HTML 代码吗?

以上是关于邮戳模板:将 html 处理为文本而不是 html 的动态变量的主要内容,如果未能解决你的问题,请参考以下文章

goweb-模板引擎

gin系列-模板引擎

Rails, Devise, Postmark Gem - 使用邮戳模板设计邮件

将 HTML 编码的字符串附加为 HTML,而不是文本

为模版设计师而生的Twig(上)-Twig使用指南

Handlebars 助手 - 返回 HTML 而不是文本