У механизма шаблонов SendGrid есть условные обозначения?

Отправка транзакции apis через SendGrid. Мой шаблон (перенесенный с Mailchimp) имеет условные обозначения (например,

*|IF:SHOWTHISSECTION|*

в синтаксисе Mailchimp). Это включает или исключает разделы шаблона на основе переменной.

Я не могу найти аналог в SendGrid, у него просто нет этой возможности? Я хотел бы подавить определенные разделы в зависимости от наличия/отсутствия переменной замещения.

Ответ 2

Это ужасный взлом, но, вводя новые переменные и используя 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 байт на сервер для каждого отдельного письма, которое, когда у вас есть тысячи или десятки тысяч писем, является запретительным.

Ответ 3

Функция SendGrid templating не поддерживает это, но вы можете использовать API шаблонов, например sendwithus, чтобы выполнить это над вашей учетной записью SendGrid. Я считаю, что sendwithus поддерживает jinja условные выражения, поэтому вы можете сделать следующее:

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

Ответ 4

SendGrid не имеет истинных условных выражений, но имеет Теги раздела. С их помощью вы можете определить блок текста на уровне сообщения (в отличие от отдельного уровня получателя тега замещения), а затем вызвать соответствующий раздел для получателя по мере необходимости.

Ответ 5

Я знаю, что это старо, но у меня была такая же проблема, и я нашел решение, совместимое с несколькими менеджерами электронной почты, которое может быть полезно кому-то.

Вы можете использовать теги замещения с значком символов html comment, если вы хотите скрыть раздел.

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

Замените теги на "" соответственно, если вы хотите скрыть этот раздел. Замените их пустыми строками в другом случае.