首页 > 解决方案 > 邮戳模板:将 html 处理为文本而不是 html 的动态变量

问题描述

我有一个邮戳电子邮件模板,其中动态变量包含 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<br> <br>上显示为文本:“ <br> <br>”。

我究竟做错了什么?

标签: node.jsemailtemplatespostmark

解决方案


邮戳支持提供了答案:

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

{{{body}}} 或 {{&body}}

在填充 TemplateModel 值时,三重大括号或 & 符号将允许您将 HTML 放入该变量中。


推荐阅读