У механизма шаблонов SendGrid есть условные обозначения?
Отправка транзакции apis через SendGrid. Мой шаблон (перенесенный с Mailchimp) имеет условные обозначения (например,
*|IF:SHOWTHISSECTION|*
в синтаксисе Mailchimp). Это включает или исключает разделы шаблона на основе переменной.
Я не могу найти аналог в SendGrid, у него просто нет этой возможности? Я хотел бы подавить определенные разделы в зависимости от наличия/отсутствия переменной замещения.
Ответы
Ответ 1
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
Ответ 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}
Замените теги на "" соответственно, если вы хотите скрыть этот раздел. Замените их пустыми строками в другом случае.
Ответ 6
Sendgrid поддерживает условное использование Handlebar
{{#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