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

如何使用Node.js向SendGrid动态模板发送JSON对象

SendGrid Node.js 动态模板参数配置解答

你没有遗漏公开文档内容,官方的Node.js动态模板配置示例没有放在快速入门或模板使用文档中,而是散落在SDK的示例代码片段里,很容易被忽略。

核心问题解答

  • 动态JSON传入规则:不需要放在请求头,直接在msg请求参数对象中配置,对应的键名为dynamicTemplateData,直接把你要传入的动态JSON对象作为该键的值即可。
  • 模板ID配置规则:同样在msg请求参数对象中配置,对应的键名为templateId,值为你在SendGrid后台创建动态模板后生成的ID字符串。

Node.js 代码示例

首先安装依赖:
npm install @sendgrid/mail

发信参考代码:

const sgMail = require('@sendgrid/mail')
// 配置你的SendGrid API Key
sgMail.setApiKey(process.env.SENDGRID_API_KEY)

const msg = {
  to: '收件人邮箱地址',
  from: '发件人邮箱地址(需在SendGrid后台完成域名/地址验证)',
  // 配置模板ID
  templateId: '你在SendGrid后台获取的动态模板ID',
  // 配置动态数据
  dynamicTemplateData: {
    // 这里的属性名要和模板里的Handlebars变量名完全匹配,大小写敏感
    username: '张三',
    orderId: '123456',
    orderAmount: 99.9
  }
}

// 发送邮件
sgMail
  .send(msg)
  .then(() => {
    console.log('邮件发送成功')
  })
  .catch((error) => {
    console.error(error)
  })

自主排查步骤

  • 先确认使用的是@sendgrid/mail v7及以上版本的SDK,旧版本的动态数据配置键名不同,会导致配置不生效
  • 直接查看本地安装的SDK的TypeScript类型定义文件,搜索MailDataRequired接口,即可看到所有合法的配置参数名,优先级高于在线文档
  • 先用最小可复现配置测试:仅保留to、from、templateId、dynamicTemplateData四个必填相关参数,确认模板可以正常渲染后再添加其他配置项
  • 若变量渲染失败,直接打印dynamicTemplateData的结构,确认属性名、嵌套层级和模板中定义的Handlebars变量完全一致,该配置对大小写敏感

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:24:03