Mailjet发送邮件未渲染模板语言内容问题求助
解决Mailjet模板语言未渲染的问题
以下是关键排查点和修复方案:
1. 修正API请求参数结构
你的代码不符合Mailjet官方SDK的参数规范,缺少必要的结构包裹:
- 模板ID参数名应为
TemplateID而非template - 模板变量参数名应为
Vars而非variables - 所有邮件配置必须放在
Messages数组内 - 收件人字段需改为数组格式的
To
修正后的代码:
async sendNotificationMail() { try { await this.mailClient.sendMail({ Messages: [ { To: [{ Email: 'mehmet.sayin@steiner.ch' }], TemplateID: 4714581, TemplateLanguage: true, AdvanceErrorHandling: true, Vars: { userName: 'Mehmet', projectName: 'Test Project', senderName: 'Mehmet', senderEmail: 'sayinmehmet47@gmail.ch', }, } ] }); } catch (error) { this.logger.error(error); } }
2. 确认模板后台设置
进入Mailjet后台的模板编辑器,检查对应模板的设置:
- 确保启用模板语言开关处于打开状态
- 验证模板内的变量语法为Mailjet标准格式:
{{变量名}}(如{{userName}}),避免混用其他模板引擎语法
3. 核对变量名一致性
确保代码中Vars内的变量名,与模板中使用的变量名大小写、拼写完全匹配,比如模板里写{{userName}},代码里就不能写成username或UserName。
4. 验证模板本身有效性
在Mailjet后台模板编辑器中使用「预览」功能,手动输入变量值测试渲染效果:
- 若预览正常,说明问题出在API请求参数上
- 若预览也异常,需排查模板内的语法错误
内容的提问来源于stack exchange,提问作者sayinmehmet47
相关产品推荐
相关产品推荐

