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

SendGrid V3 Java API邮件主题特殊字符转义异常问题求助

解决SendGrid Java V3 API主题特殊字符转义问题

问题原因

SendGrid的动态模板默认会对传入的dynamicTemplateData变量做HTML转义(用于防范XSS风险),所以&这类特殊字符会被自动转换成&实体,导致显示异常。

解决方案

方案1:直接设置邮件主题(推荐)

如果不需要通过动态模板动态生成主题,直接调用mail.setSubject()设置主题即可,绕开动态模板的转义逻辑:

Personalization personalization = new Personalization();
personalization.addTo("to Email address");

Mail mail = new Mail();
mail.addPersonalization(personalization);
mail.setFrom("from email address");
mail.setSubject("Abc & Xyz"); // 直接设置原始主题内容

Request request = new Request();
request.setMethod(Method.POST);
request.setEndpoint("mail/send");
request.setBody(mail.build());
sendGrid.api(request);

方案2:禁用模板变量的HTML转义

如果必须通过动态模板数据传递主题,修改你的SendGrid模板中的主题渲染代码,把原来的{{subject}}改成三重大括号{{{subject}}},这样SendGrid会跳过对该变量的HTML转义:

模板修改示例:
原模板主题部分:{{subject}}
修改后:{{{subject}}}

修改后,传入的"Abc & Xyz"就会原样显示,不会被转义成Abc & Xyz。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:23:17