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

如何通过SendGrid/mail Node.js包添加邮件退订链接?

解决SendGrid Node.js Mail包中退订链接不生效的问题

我之前也踩过这个坑!其实核心原因是:你看到的[Unsubscribe]短代码是SendGrid营销活动(Marketing Campaigns)专属的自动解析功能,而@sendgrid/mail这个包是用来发送普通交易邮件的SDK,它本身不会自动识别这个短代码。下面给你两种实用的解决办法:

方法一:手动生成退订链接(适合交易邮件场景)

如果你的邮件是交易类(比如订单通知、密码重置),推荐用这种方式:

  • 第一步:先在SendGrid后台创建好退订组(Unsubscribe Group),记下对应的组ID
  • 第二步:用SendGrid官方的退订链接模板,把组ID和收件人邮箱动态替换进去,模板格式是:
    https://sendgrid.com/unsubscribe/{{group_id}}/{{recipient_email}}
  • 第三步:在你的邮件HTML里直接插入这个动态生成的链接,比如Node.js代码示例:
    const sgMail = require('@sendgrid/mail');
    sgMail.setApiKey(process.env.SENDGRID_API_KEY);
    
    const toEmail = 'user@example.com';
    const unsubscribeGroupId = '12345'; // 替换成你的退订组ID
    const unsubscribeLink = `https://sendgrid.com/unsubscribe/${unsubscribeGroupId}/${encodeURIComponent(toEmail)}`;
    
    const msg = {
      to: toEmail,
      from: 'your@example.com',
      subject: 'Test Email',
      html: `<p>Thanks for subscribing! Click <a href="${unsubscribeLink}">here</a> to unsubscribe anytime.</p>`,
    };
    
    sgMail.send(msg);
    

方法二:切换到营销活动API(适合批量营销邮件场景)

如果你的邮件是批量营销类(比如 newsletter),更推荐用SendGrid的Marketing Campaigns相关API,它会自动解析[Unsubscribe]这类短代码,还能帮你管理订阅状态。当然如果一定要用@sendgrid/mail包,也可以通过配置asm参数关联退订组,但还是不如营销API的自动处理省心。

额外注意事项

  • 务必确保你的SendGrid账户已经创建了退订组,否则生成的退订链接会失效
  • 按照CAN-SPAM法规要求,所有营销类邮件必须包含清晰的退订入口,交易邮件也建议添加,提升用户体验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:25:00