2015-06-06 4 views
10

Senden von transaktionalen Apis über SendGrid. Meine Vorlage (portiert von Mailchimp) hat conditionals (z.B.Hat die SendGrid-Vorlagen-Engine Bedingungen?

*|IF:SHOWTHISSECTION|*

in Mailchimp Syntax). Dies umfasst oder schließt Abschnitte der Vorlage basierend auf einer Variablen ein.

Ich kann das Analog in SendGrid nicht finden, hat es einfach nicht diese Fähigkeit? Ich möchte bestimmte Abschnitte abhängig vom Vorhandensein/Fehlen einer Substitutionsvariablen unterdrücken.

Antwort

2

SendGrid-Templating unterstützt dies nicht, aber Sie können eine Template-API wie sendwithus verwenden, um dies über Ihr SendGrid-Konto zu erreichen. Ich glaube, sendwithus unterstützt jinja conditionals, so könnten Sie Folgendes tun:

{% if variable %} 
    <h1>{{ variable }}</h1> 
{% endif %} 
+0

Vielen Dank. SendWithUs würde funktionieren, obwohl das eine teure Lösung ist und eine weitere Templating-Engine in meinen Mix einführt. Hoffentlich kommt sendgrid dazu, das hinzuzufügen .... –

2

SendGrid nicht wahr conditionals hat, aber es hat Section Tags haben. Mit diesen können Sie einen Textblock auf der Nachrichtenebene definieren (im Gegensatz zur unterschiedlichen Empfängerebene einer Substitution Tag) und dann den entsprechenden Abschnitt für den Empfänger bei Bedarf aufrufen.

+1

Danke. Ich werde das überprüfen! –

5

Es ist ein schrecklicher Hack, aber durch die Einführung neuer Variablen und die Verwendung von CSS können Sie die relevanten Teile von Mails mit display verbergen. Also, wo vor in Mandrill/MailChimp hätte ich so etwas wie:

*|IF:FAKEVAR|* 
    <p>Show some text here</p> 
    *|END:IF|* 

Stattdessen eine neue Variable IF_FAKEVAR einführen, deren Wert „none“ oder „erben“, je nachdem, ob FAKEVAR einen Wert hat, dann tun dies:

<p style="display: *|IF_FAKEVAR|*">Show some text here</p> 

Während es ein Hack ist, für sehr komplexe E-Mail-Vorlagen, es vermeidet 70k Bytes an den Server für jede einzelne E-Mail senden, die, wenn Sie tausende oder Zehntausende von E-Mail haben, ist untragbar.

+1

btw es scheint, Sie müssen style = "display: * | IF_FAKEVAR | *! Wichtig;" Wenn du wirklich willst, dass Google Mail es tut ... Seufz. –

+0

Dies ist wirklich die einzige Option, es sei denn, Ihre Abschnitte enthalten nicht viel HTML. Andernfalls wird Ihr gesamter HTML-Code in Ihrer Anwendung anstelle der Send-Grid-Vorlage angezeigt. –

0

Ich weiß, das ist alt, aber ich hatte das gleiche Problem, und ich fand eine Lösung mit mehreren E-Mail-Manager kompatibel, die vielleicht für jemanden hilfreich ist.

Sie können Substitutionstags mit dem HTML-Kommentarsymbolwert verwenden, wenn Sie einen Abschnitt ausblenden möchten.

Ersetzen Sie Tags mit "" bzw. wenn Sie den Abschnitt ausblenden möchten. Ersetzen Sie sie im anderen Fall durch leere Zeichenfolgen.

Verwandte Themen