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

C#调用Brevo API无法传递自定义属性至邮件模板

解决Brevo邮件模板自定义属性替换无效的问题

针对你用C#调用Brevo发送邮件时,EMPLOYEENAME自定义属性无法替换的问题,按以下步骤排查修复:

1. 核对模板变量与传递参数的大小写及格式

Brevo的模板变量是大小写敏感的,确保:

  • 模板中使用的变量是{{EMPLOYEENAME}}(和你传递的键名完全一致,包括大小写)
  • 模板里没有多余的空格或特殊字符,比如{{ EMPLOYEENAME }}(带空格)会导致匹配失败

2. 确认API请求中变量的传递位置正确

在Brevo的Transactional Email API中,自定义模板变量需要放在SendSmtpEmail对象的Params属性中,而非其他字段。示例正确的C#代码结构:

var apiInstance = new TransactionalEmailsApi();
var sendSmtpEmail = new SendSmtpEmail(
    to: new List<SendSmtpEmailTo> { new SendSmtpEmailTo("recipient@example.com", "Recipient Name") },
    templateId: YOUR_TEMPLATE_ID,
    @params: new Dictionary<string, object> { { "EMPLOYEENAME", "张三" } }, // 变量需放在此处
    sender: new SendSmtpEmailSender("sender@example.com", "Sender Name")
);

try {
    CreateSmtpEmail result = apiInstance.SendTransacEmail(sendSmtpEmail);
    Console.WriteLine(result);
} catch (Exception e) {
    Console.WriteLine("Exception when calling TransactionalEmailsApi.SendTransacEmail: " + e.Message);
}

如果你的代码里变量是放在value字典而非Params,会直接导致替换失效。

3. 区分“联系人属性”与“一次性模板变量”

  • 若模板中使用的是联系人属性(从Brevo联系人列表拉取的属性),需确保目标联系人的EMPLOYEENAME属性已正确赋值,且模板绑定的是该联系人属性而非自定义变量。
  • 若要发送一次性动态变量(不依赖联系人属性),需在模板构建器中选择“添加变量”而非关联联系人属性,确保变量是独立的模板变量。

4. 验证API请求的实际内容

用调试工具(如Fiddler、Postman)捕获你的C#代码发送的API请求,检查params字段是否包含EMPLOYEENAME及对应值。如果请求中无该参数,说明代码传递方式有误。

5. 检查模板构建器的设置

在Brevo模板构建器中:

  • 确认变量是直接插入的模板变量,而非动态内容块的条件变量
  • 预览模板时手动填入EMPLOYEENAME的值,测试是否能正常显示,排除模板本身的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 19:38:10