SendGridを介してトランザクションAPIを送信します。私のテンプレート(Mailchimpから移植されたもの)には条件があります(例:.
*|IF:SHOWTHISSECTION|*
mailchimp構文で)。これには、変数に基づいてテンプレートのセクションが含まれるか、除外されます。
SendGridでアナログが見つかりません。単にこの機能がないのですか?置換変数の有無に応じて、特定のセクションを抑制したいのですが。
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
これは恐ろしいハックですが、新しい変数を導入してCSSを使用することで、display
を使用してメールの関連部分を非表示にすることができます。したがって、以前はMandrill/MailChimpのどこに、次のようなものがありました。
*|IF:FAKEVAR|*
<p>Show some text here</p>
*|END:IF|*
代わりに、新しい変数IF_FAKEVARを導入します。この変数の値は、FAKEVARに値があるかどうかに応じて、「none」または「inherit」のいずれかになります。次に、次のようにします。
<p style="display: *|IF_FAKEVAR|*">Show some text here</p>
これはハックですが、非常に複雑な電子メールテンプレートの場合、1通の電子メールごとに7万バイトをサーバーに送信することを回避します。これは、数千または数万のメールがある場合、法外なことです。
私はこれが古いことを知っていますが、同じ問題があり、誰かに役立つかもしれないいくつかの電子メールマネージャーと互換性のある解決策を見つけました。
セクションを非表示にする場合は、htmlコメントシンボル値で置換タグを使用できます。
{%OPEN_COMMENT}
<h1>Whatever section you want to hide</h1>
{%CLOSE_COMMENT}
セクションを非表示にする場合は、タグをそれぞれ「」に置き換えます。それ以外の場合は、空の文字列に置き換えてください。
SendGridテンプレートはこれをサポートしていませんが、 sendwithus のようなテンプレートAPIを使用して、SendGridアカウント上でこれを実現できます。 sendwithusは jinja条件付き をサポートしていると思うので、次のことができます。
{% if variable %}
<h1>{{ variable }}</h1>
{% endif %}
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