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

如何自定义SendGrid邮件默认退订链接的显示位置与样式?

SendGrid自定义退订链接位置解决方案

针对你遇到的两个核心问题:使用动态模板丢失原有邮件内容、不使用模板退订链接被自动追加到正文末尾,可通过以下两种方案实现需求:


方案1:修改现有动态模板(推荐,可灵活控制样式)

你设置模板后只显示订阅模块,是因为模板内没有预留主题、正文的变量占位位,按以下步骤调整即可:

  1. 进入SendGrid后台的动态模板管理页,找到你当前使用的模板d-848281f0ab8f45a7bc0e1690442a8803做修改:
    • 主题栏设置为动态变量{{subject}},支持接收代码传入的自定义主题
    • 正文区域添加内容占位变量,如果你传入的是HTML格式正文,使用三个大括号避免标签转义:{{{email_content}}}
    • 在你期望展示退订链接的位置(比如正文下方)新增独立区块,可自行设置灰色背景、分割线等样式和正文做区分,区块内插入SendGrid内置的退订变量:
      • 退订当前组:{{asm_group_unsubscribe_url}}
      • 管理订阅偏好:{{asm_preferences_url}}
      • 全局退订:{{asm_global_unsubscribe_url}}
  2. 修改你的Java代码,将原有主题、正文内容作为动态参数传入模板:
ASM asmInst = new ASM();
asmInst.setGroupId(mailGroupId);
mail.setASM(asmInst);
int[] groupsToDisplay = {mailGroupId};
asmInst.setGroupsToDisplay(groupsToDisplay);
mail.setTemplateId("d-848281f0ab8f45a7bc0e1690442a8803");

// 新增:将原有主题、正文传入动态模板参数
Personalization personalization = mail.getPersonalizations().get(0);
// 传入主题,对应模板内的{{subject}}变量
personalization.addDynamicTemplateData("subject", mail.getSubject());
// 传入HTML正文,对应模板内的{{{email_content}}}变量
personalization.addDynamicTemplateData("email_content", mail.getContent().get(0).getValue());

方案2:不使用动态模板,手动插入退订链接

如果你不想调整模板,可直接关闭自动追加退订链接的开关,自行控制链接位置:

  1. 进入SendGrid后台「设置」-「订阅管理」,关闭「自动在所有邮件末尾添加退订链接」的开关
  2. 在你自己拼接邮件正文时,在期望的位置插入退订链接段,示例HTML如下:
<hr style="border:none;border-top:1px solid #eee;margin:20px 0;">
<div style="background:#f5f5f5;padding:16px;font-size:12px;color:#666;">
  <a href="<%asm_group_unsubscribe_url%>">退订此列表</a> | <a href="<%asm_preferences_url%>">管理邮件偏好</a>
</div>
  1. Java代码无需设置templateId,保留原有ASM配置即可,SendGrid会自动将代码里的<%xxx%>标签替换为对应的实际退订链接,也不会再自动在正文末尾追加链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:36:09