Документация / Шаблоны писем

Шаблоны писем

Шаблон хранит вёрстку письма на стороне сервиса. Приложение передаёт только slug шаблона, язык и параметры — менять текст и оформление можно в панели, не выкладывая новую версию кода.

Переменные

Для подстановки используется синтаксис Jinja2: значение вставляется двойными фигурными скобками, доступны условия и циклы.

order-confirmed.html
<h1>Здравствуйте, {{ name }}!</h1>

<p>Заказ №{{ order }} принят. Доставка — {{ delivery }}.</p>

{% if promo %}
  <p>Промокод на следующий заказ: <b>{{ promo }}</b></p>
{% endif %}

Языки

У шаблона может быть отдельная версия для каждого языка. При отправке указывается lang, и сервис берёт нужный вариант. Если версии для запрошенного языка нет, используется язык по умолчанию.

Отправка

Шаблон отправляется по slug через REST API, метод /external/send_email_tpl/:

json
{
    "recipient": "client@example.ru",
    "tpl": "order-confirmed",
    "lang": "ru",
    "params": {
        "name": "Алексей",
        "order": "4417",
        "delivery": "завтра до 18:00"
    },
    "auth": {
        "username": "<логин токена>",
        "password": "<пароль токена>"
    }
}
В панели есть предпросмотр — он подставляет тестовые значения и показывает итоговое письмо. Так проще поймать незакрытый тег или опечатку в имени переменной до того, как письмо уйдёт клиентам.

Оформление

Общие элементы — логотип, цвета, подвал — задаются в настройках шаблонов домена и применяются ко всем письмам. Логотип можно загрузить или указать ссылку на свой, если не хотите, чтобы в письмах появлялись адреса fmailer.

Шаблоны как код

Если шаблоны должны жить в репозитории и выкатываться через CI/CD, используйте Terraform-провайдер.