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

如何在Mandrill的Handlebar表达式中传递大括号?

解决Mandrill邮件中Handlebars大括号与元数据内容的冲突问题

这个问题我之前碰到过好几次,核心原因就是Mandrill的Handlebars模板引擎会把你元数据内容里的{}当成它的模板语法来解析,而不是普通文本。这里有几个靠谱的解决办法,你可以根据自己的场景选:

  • 转义元数据里的大括号:
    直接在传入的content值里,把单个的{改成\{,}改成\},这样Handlebars就会把它们当成普通文本处理。比如你的示例可以改成这样:

    merge_Tags: { name: 'redirectUrl', content: 'http://somedomain.com/login?\{redirect=dashboard\}' }
    
  • 在Mandrill模板里用三重大括号输出原始内容:
    要是不想改元数据,也可以在模板里用Handlebars的三重大括号来输出merge tag的内容,这样Handlebars会跳过对内容里{}的解析,直接输出原始文本。写法是这样的:

    {{{*|redirectUrl|*}}}
    

    提醒一下:这种方式会完全禁用Handlebars对这段内容的解析,适合你确定内容里没有需要Handlebars处理的语法的情况。

  • 把大括号换成URL编码形式:
    如果你元数据里的{redirect=dashboard}是URL参数的一部分,完全可以把大括号换成URL编码后的字符——{对应%7B,}对应%7D。这样既避免了语法冲突,浏览器也会自动解码,不影响URL正常使用。示例:

    merge_Tags: { name: 'redirectUrl', content: 'http://somedomain.com/login?%7Bredirect=dashboard%7D' }
    

这些方法都能解决你的冲突问题,我自己用得最多的是前两种,看你哪种更方便就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:34:29