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

使用SendGrid Node.js库按单封邮件禁用点击追踪失效问题求助

问题:sendgrid-nodejs单封邮件禁用点击追踪配置无效

我正在使用sendgrid-nodejs库发送邮件,希望通过代码全局禁用单封邮件的点击追踪。我知道可以在动态模板的链接中添加clicktracking=off属性(如<a clicktracking=off href="http://example.com">link text</a>)来禁用单链接追踪,但想通过代码统一控制整封邮件。

根据SendGrid文档,曾有通过clicktrack过滤器配置的方式:

{
  "filters": {
    "clicktrack": {
      "settings": {
        "enable": 0,
        "enable_text": false
      }
    }
  }
}

查看Mail构造函数类型定义,headers要求值为字符串,直接传对象会报错:

{
  "body": {
    "errors": [
      {
        "message": "Invalid type. Expected: string, given: object.",
        "field": "headers",
        "help": "http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.headers"
      }
    ]
  }
}

改成字符串后邮件发送成功,但点击追踪并未禁用,我的代码如下:

const { SENDGRID_KEY } = process.env
const mail = require('@sendgrid/mail')
mail.setApiKey(SENDGRID_KEY)

mail.send({
  headers: {
    // 无效果
    "X-SMTPAPI": JSON.stringify({
      filters: {
        clicktrack: {
          settings: {
            enable: 0,
            enable_text: false
          }
        }
      }
    }),
    // 无效果
    "filters": JSON.stringify({
      clicktrack: {
        settings: {
          enable: 0,
          enable_text: false
        }
      }
    }),
  },
  to: 'somebody@email.com',
  from: 'nobody@email.com',
  templateId: 'd-xxxxxxxxxxxxxxxxxxxxxxxx',
  dynamic_template_data: {
    subject: 'Hello World'
  }
})

请问为什么配置不起作用?


解答

原因:旧版API配置不适用于v3 Mail API

你使用的filters配置以及X-SMTPAPI头的方式是SendGrid v2 API的用法,而当前sendgrid-nodejs库对接的是v3 Mail API,v3已经不再支持这种配置方式,所以你的设置不会生效。

正确实现:使用v3原生的tracking_settings参数

v3 API提供了专门的tracking_settings字段来控制邮件追踪功能,直接在邮件配置中添加该字段即可,不需要放到headers里。

修改后的代码:

const { SENDGRID_KEY } = process.env
const mail = require('@sendgrid/mail')
mail.setApiKey(SENDGRID_KEY)

mail.send({
  to: 'somebody@email.com',
  from: 'nobody@email.com',
  templateId: 'd-xxxxxxxxxxxxxxxxxxxxxxxx',
  dynamic_template_data: {
    subject: 'Hello World'
  },
  // 全局禁用点击追踪
  tracking_settings: {
    click_tracking: {
      enable: false, // 禁用HTML内容的点击追踪
      enable_text: false // 禁用纯文本内容的点击追踪
    }
  }
})

补充说明

  • 该配置会禁用整封邮件所有链接的点击追踪;
  • 如果需要保留部分链接的追踪,仍可在对应链接上添加clicktracking=off属性单独控制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:30:45