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

如何通过SendGrid Python API启用保留替换标签(退订和网页查看邮件)

核心原因

这两个标签失效的本质是未正确启用SendGrid的模板引擎解析功能,导致标签被当作普通文本输出,没有被转换为可点击的HTML链接元素。

具体修复方案

1. 启用SendGrid模板引擎

在构造邮件时必须指定模板引擎类型(SendGrid默认使用Handlebars),让平台识别并处理内置标签。

2. 正确编写邮件内容与代码

  • {{Weblink}}:无需额外配置,启用模板引擎后,SendGrid会自动将其替换为当前邮件的网页查看链接,且默认是带<a>标签的可点击形式。
  • {{{Unsubscribe}}}:需先在SendGrid后台(「Marketing > Unsubscribe Groups」)配置全局退订链接,再通过模板引擎解析生成可点击按钮/链接。

修正后的Python代码示例

import sendgrid
from sendgrid.helpers.mail import Mail, HtmlContent, To, From, Subject

# 初始化SendGrid客户端
sg = sendgrid.SendGridAPIClient(api_key='你的SendGrid API密钥')

# 构造邮件基础信息
from_email = From('sender@example.com', '发件人名称')
to_email = To('recipient@example.com', '收件人名称')
subject = Subject('测试内置标签解析')

# 包含目标标签的HTML内容
html_content = HtmlContent("""
<p>查看网页版邮件: {{Weblink}}</p>
<p>如需退订请点击: {{{Unsubscribe}}}</p>
""")

# 构建邮件并启用模板引擎
mail = Mail(from_email, to_email, subject, html_content)
mail.template_engine = 'handlebars'  # 必须指定此参数,否则标签无法被解析

# 发送邮件
response = sg.send(mail)
print(f"发送状态码: {response.status_code}")

额外注意事项

  • 不要手动对标签进行HTML转义(比如写成&lbrace;&lbrace;Weblink&rbrace;&rbrace;),否则SendGrid无法识别标签。
  • 若使用SendGrid自定义模板,直接在模板编辑器中插入内置标签即可,无需在API代码中重复处理。
  • 确认SendGrid账户已完成退订功能的基础配置,否则{{{Unsubscribe}}}标签无法生成有效链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:06:24