SendGrid模板引擎有条件吗?

Mar*_*ins 14 sendgrid

通过SendGrid发送事务api.我的模板(从Mailchimp移植)有条件(例如

*|IF:SHOWTHISSECTION|*

在Mailchimp语法中).这包括或排除基于变量的模板部分.

我在SendGrid中找不到模拟,是不是没有这个功能?我想根据替换变量的存在/不存在来抑制某些部分.

Mar*_*ins 6

这是一个可怕的黑客,但通过引入新变量和使用CSS,您可以使用隐藏邮件的相关部分display.那么在Mandrill/MailChimp之前,我有类似的东西:

    *|IF:FAKEVAR|* 
    <p>Show some text here</p>
    *|END:IF|*
Run Code Online (Sandbox Code Playgroud)

相反,引入一个新变量IF_FAKEVAR,其值为"none"或"inherit",具体取决于FAKEVAR是否具有值,然后执行以下操作:

<p style="display: *|IF_FAKEVAR|*">Show some text here</p>
Run Code Online (Sandbox Code Playgroud)

虽然它是一个黑客,但对于非常复杂的电子邮件模板,它避免了为每一封电子邮件向服务器发送70k字节,当你有数千或数万封邮件时,这是令人望而却步的.


rot*_*d86 6

SendGrid现在原生支持此功能:

{{#if user.profile.male}}
  <p>Dear Sir</p>
{{else if user.profile.female}}
  <p>Dear Madame</p>
{{else}}
  <p> Dear Customer</p>
{{/if}}
Run Code Online (Sandbox Code Playgroud)

参考:https : //sendgrid.com/docs/for-developers/sending-email/using-handlebars/#conditional-statements