通过SendGrid发送事务性api。我的模板(从Mailchimp移植)有条件(例如
*|IF:SHOWTHISSECTION|*
在Mailchimp语法中)。这包括或排除基于变量的模板部分。
我在SendGrid中找不到模拟器,它是不是没有这个功能?我想根据替换变量的存在/不存在来抑制某些部分。
答案 0 :(得分:6)
这是一个可怕的黑客,但通过引入新变量和使用CSS,您可以使用display
隐藏邮件的相关部分。所以在Mandrill / MailChimp之前,我有类似的东西:
*|IF:FAKEVAR|*
<p>Show some text here</p>
*|END:IF|*
相反,引入一个新变量IF_FAKEVAR,其值为“none”或“inherit”,具体取决于FAKEVAR是否有值,然后执行此操作:
<p style="display: *|IF_FAKEVAR|*">Show some text here</p>
虽然对于非常复杂的电子邮件模板来说这是一个黑客攻击,但它避免了为每封电子邮件向服务器发送70k字节,当你有数千或数万封邮件时,它是禁止的。
答案 1 :(得分:3)
SendGrid现在原生支持此功能:
{{#if user.profile.male}}
<p>Dear Sir</p>
{{else if user.profile.female}}
<p>Dear Madame</p>
{{else}}
<p> Dear Customer</p>
{{/if}}
参考:https://sendgrid.com/docs/ui/sending-email/using-handlebars/#conditional-statements
答案 2 :(得分:2)
SendGrid模板不支持此功能,但您可以使用sendwithus之类的模板API在SendGrid帐户之上完成此操作。我相信sendwithus支持jinja conditionals,因此您可以执行以下操作:
{% if variable %}
<h1>{{ variable }}</h1>
{% endif %}
答案 3 :(得分:2)
SendGrid没有真正的条件,但确实有Section Tags。有了这些,您可以在消息级别定义一个文本块(而不是Substitution Tag的不同收件人级别),然后根据需要为接收者调用适当的部分。
答案 4 :(得分:2)
我知道这已经过时了,但我遇到了同样的问题,我发现了一个与多个电子邮件管理员兼容的解决方案,可能对某人有帮助。
如果要隐藏某个部分,可以使用带有html注释符号值的替换标记。
{%OPEN_COMMENT}
<h1>Whatever section you want to hide</h1>
{%CLOSE_COMMENT}
如果要隐藏该部分,请分别用“”替换标签。在另一种情况下,用空字符串替换它们。
答案 5 :(得分:0)
Sendgrid支持使用把手
{{#if user.profile.male}}
<p>Dear Sir</p>
{{else if user.profile.female}}
<p>Dear Madame</p>
{{else}}
<p> Dear Customer</p>
{{/if}}
此处https://sendgrid.com/docs/for-developers/sending-email/using-handlebars/#conditional-statements
答案 6 :(得分:0)
下面的把手可以在Sendgrid动态模板中使用:
Conditional statements:
{{#if variable}}
{{#unless variable}}
{{#greaterThan variable value}}
{{#lessThan variable value}}
{{#equals variable value}}
{{#notEquals variable value}}
{{#and variable1 variable2}}
{{#or variable1 variable2}}
Looping statements:
{{#each hash}}
有关详细信息,请参考https://sendgrid.com/docs/for-developers/sending-email/using-handlebars/