2015-06-06 16 views
10

Invio di API transazionali tramite SendGrid. Il mio modello (ported sopra da Mailchimp) ha condizionali (ad esempioIl motore di template di SendGrid ha condizionali?

*|IF:SHOWTHISSECTION|*

nella sintassi Mailchimp). Questo include o esclude sezioni del modello basate su una variabile.

Non riesco a trovare l'analogico in SendGrid, semplicemente non ha questa capacità? Vorrei sopprimere alcune sezioni a seconda della presenza/assenza di una variabile di sostituzione.

risposta

2

SendGrid templating non supporta questo, ma è possibile utilizzare un'API di templating come sendwithus per eseguire questa operazione sopra l'account SendGrid. Credo sendwithus supporta jinja conditionals, in modo da poter effettuare le seguenti operazioni:

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

Grazie. SendWithUs funzionerebbe anche se questa è una soluzione costosa e introduce ancora un altro motore di template per il mio mix. Speriamo che sendgrid possa aggiungere questo ... –

2

SendGrid non ha veri condizionali, ma ha Section Tags. Con questi, è possibile definire un blocco di testo a livello di messaggio (in contrapposizione al livello destinatario distinto di uno Substitution Tag), quindi chiamare la sezione appropriata per il destinatario secondo necessità.

+1

Grazie. Lo controllerò! –

5

È un attacco orribile, ma introducendo nuove variabili e utilizzando il CSS, è possibile nascondere le porzioni rilevanti di e-mail utilizzando display. Allora, dove prima nella Mandrillo/MailChimp mi piacerebbe avere qualcosa di simile:

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

invece, introdurre un nuovo IF_FAKEVAR variabile, il cui valore è, "none" o "ereditare" a seconda se FAKEVAR ha un valore, poi fare questo:

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

Mentre è un hack, per modelli di posta elettronica molto complessi, evita l'invio di 70k byte al server per ogni singola email, che quando si hanno migliaia o decine di migliaia di mail, è proibitivo.

+1

btw sembra che devi fare style = "display: * | IF_FAKEVAR | *! Important;" se vuoi davvero che gmail lo faccia ... sospiro. –

+0

Questa è davvero l'unica opzione a meno che le sezioni non contengano molto HTML, altrimenti tutto il codice HTML finisce nell'applicazione invece del modello di griglia di invio. –

0

So che questo è vecchio, ma ho avuto lo stesso problema e ho trovato una soluzione compatibile con diversi gestori di e-mail che forse è utile per qualcuno.

È possibile utilizzare tag di sostituzione con il valore dei simboli di commento html nel caso in cui si desideri nascondere una sezione.

{%OPEN_COMMENT} 
<h1>Whatever section you want to hide</h1> 
{%CLOSE_COMMENT} 

Sostituire i tag con "" rispettivamente se si desidera nascondere la sezione. Sostituiscili con stringhe vuote nell'altro caso.

Problemi correlati