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

邮件模板特殊字符转义问题:Gmail中${token}内容被截断如何解决?

解决Gmail中包含特殊字符的临时密码被截断的问题

这个问题很常见——Gmail(以及大多数HTML邮件客户端)会把<字符解析为HTML标签的起始标记,导致后面的内容被当作未闭合的标签处理,最终被截断。下面是具体的解决方法,结合你的多部分MIME邮件模板来说明:

核心原因

HTML中<、>、&、"、'这些属于特殊字符,它们会被邮件客户端的HTML渲染引擎当作语法的一部分,而不是普通文本。你的token里的<触发了这个解析逻辑,所以Gmail只显示了<之前的内容。

解决方案

因为你的邮件是multipart/alternative格式,包含纯文本(text/plain)和HTML(text/html)两个部分,需要分别处理:

1. HTML部分(text/html):转义特殊字符为HTML实体

你需要把token中的特殊字符替换为对应的HTML实体,确保客户端把它们当作普通文本渲染:

  • < → &lt;
  • > → &gt;
  • & → &amp;
  • " → &quot;
  • ' → &#39;(兼容性更好)

你的token @.iJ<ep2C]a-d$}4xK{ 转义后应该变成:@.iJ&lt;ep2C]a-d$}4xK{

2. 纯文本部分(text/plain):无需转义

纯文本部分不会被解析为HTML,所以直接保留原始token即可,客户端会正常显示所有字符。

修改后的邮件模板示例

发件人:info@mycompany.com
主题:新用户激活
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="alternative_boundary"

--alternative_boundary
Content-Type: text/plain; charset="UTF-8"

请使用以下临时密码激活你的账户:@.iJ<ep2C]a-d$}4xK{

--alternative_boundary
Content-Type: text/html; charset="UTF-8"

<p>请使用以下临时密码激活你的账户:<code>@.iJ&lt;ep2C]a-d$}4xK{</code></p>

--alternative_boundary--

额外建议

如果你的邮件模板系统支持自动转义变量(比如Jinja2、Handlebars等模板引擎的auto-escape功能),建议开启这个功能。它会自动识别并转义变量中的HTML特殊字符,避免手动转义时遗漏特殊字符的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:22:51