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

如何在SendGrid自定义退订HTML中显示待退订用户邮箱

解决SendGrid退订页面无法显示用户邮箱的问题

我之前也踩过SendGrid退订页面的这个坑!试了好几个占位符都没显示出用户邮箱,后来折腾了半天终于找到了解决办法,给你几个可行的方案:

方案1:用SendGrid退订页专属变量

如果你是在SendGrid后台「Settings > Unsubscribe Settings」里配置的退订HTML内容,其实官方有个专门的变量{{email}}能直接渲染当前待退订用户的邮箱。不过要注意两个关键点:

  • 这个变量只对SendGrid自动生成的退订链接生效——也就是你邮件里用{{unsubscribe_url}}占位符生成的链接,因为SendGrid会在生成链接时绑定收件人的邮箱上下文。
  • 像{{recipient.email}}或者{{contact.email}}这类变量,只在动态邮件模板里有用,放到退订着陆页的配置里是不生效的。

方案2:自定义退订链接并手动传邮箱参数

如果方案1没起作用,大概率是你的退订链接没正确携带邮箱信息,这时候可以手动加参数解决:

  1. 在发送邮件的模板里,把退订链接改成这样:https://你的退订页面域名?email={{recipient.email}}——这里的{{recipient.email}}是SendGrid动态模板的变量,发送时会自动替换成收件人的真实邮箱。
  2. 在你的退订HTML里加一段JS来获取并显示这个参数:
// 从URL里提取email参数
const urlParams = new URLSearchParams(window.location.search);
const userEmail = urlParams.get('email');
// 把邮箱插入到页面指定位置
if (userEmail) {
  document.getElementById('user-email').textContent = userEmail;
}

然后在HTML里预留一个显示位置:

<p>你要退订的邮箱是:<span id="user-email"></span></p>

方案3:检查批量发送时的个性化数据

如果你是通过API批量发邮件,一定要确保请求里给每个收件人都传了personalizations字段的邮箱信息,不然SendGrid识别不出当前用户,自然没法渲染变量。比如API请求结构得包含:

{
  "personalizations": [
    {
      "to": [{"email": "user1@example.com"}],
      "dynamic_template_data": {"email": "user1@example.com"}
    }
  ]
}

最后给个小建议:如果还是不行,先简化测试——在退订设置里只写<p>你的邮箱:{{email}}</p>,然后发测试邮件给自己,点退订链接看看能不能正常显示,这样能排除复杂HTML的干扰。

内容的提问来源于stack exchange,提问作者galactic.nucleus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:52