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

如何在SES模板中使用Handlebars实现可选条件内容?

AWS SES模板实现可选内容的解决方案

AWS SES的Handlebars模板引擎对未定义变量的处理较为严格,直接引用不存在的变量会触发渲染错误,导致邮件发送失败。针对你的问题,有几种可行的解决方法:

  • 给可选变量设置默认空值
    发送邮件时,在模板数据中显式包含所有可能用到的变量,即使没有实际值也设为空字符串或null。示例数据:

    {
      "foo": "",
      "bar": ""
    }
    

    此时{{#if foo}}会因空字符串判定为false,不会渲染对应段落,同时避免变量未定义的报错。

  • 使用{{#with}}块处理可选变量
    {{#with}}块会在变量不存在时跳过内部内容,且不会触发报错。模板写法:

    {{#with foo}}
      <p>{{this}}</p>
    {{/with}}
    {{#with bar}}
      <p>{{this}}</p>
    {{/with}}
    

    这里{{this}}指代当前块的变量值(即foo或bar),无需提前在数据中定义变量。

  • 嵌套对象场景的处理
    如果你用data.foo这类嵌套变量,需确保外层对象存在,同时给内层变量设默认值,或用{{#with}}包裹外层对象:
    模板写法:

    {{#with data}}
      {{#if foo}}
        <p>{{foo}}</p>
      {{/if}}
      {{#if bar}}
        <p>{{bar}}</p>
      {{/if}}
    {{/with}}
    

    对应传入的数据:

    {
      "data": {
        "foo": "",
        "bar": ""
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:42:01