You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postmark模板动态变量HTML被识别为纯文本问题排查

解决Postmark模板中动态变量HTML被当作纯文本的问题

嘿,这个问题我之前也踩过坑!Postmark默认会自动转义模板变量里的HTML内容,这是它的安全机制,用来防止XSS攻击,所以你传入的<br>标签才会被当成纯文本显示出来,而模板里直接写的HTML因为是模板本身的内容,不会被转义,所以能正常解析换行。

快速解决方案

只需要修改Postmark模板里的变量语法,把双大括号改成三大括号:

修改前的模板代码:

<tr>
  <td> 1. 以下是包含br换行的文本:{{body}} </td>
</tr>

修改后的模板代码:

<tr>
  <td> 1. 以下是包含br换行的文本:{{{body}}} </td>
</tr>

为什么这样有效?

Postmark的模板引擎(Handlebars)中:

  • {{变量}}:会自动转义HTML内容,把<、>等字符转换成实体编码(比如&lt;、&gt;),所以浏览器会把它们当成纯文本显示。
  • {{{变量}}}:会跳过转义步骤,直接渲染变量里的HTML内容,这样你的<br>标签就能正常生效了。

注意事项

如果你传入的body内容包含用户输入的内容,一定要先做XSS过滤!因为关闭转义后,恶意HTML代码会直接在邮件中执行,带来安全风险。如果是你自己生成的可信HTML,就不用担心这个问题。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:33:13