Legan Studio
Все статьи
~ 6 мин чтения

Email-уведомления из бота MAX: как настроить

Как отправлять email из бота MAX: SMTP-шлюзы, сервисы рассылок, шаблоны, доставляемость, защита от спама. Стек и реализация.

  • MAX
  • интеграции
  • уведомления

Хотя MAX сам по себе — мессенджер, бизнесу часто нужно дублировать важные уведомления через email. Чек, договор, инструкции, приглашение в проект — всё это пользователь хочет иметь в почте. Разберём, как правильно подключить email-канал к боту MAX.

Когда нужен email из бота

Не всё уместно отправлять в почту, но есть устойчивые сценарии:

  • Финансовые документы: чеки, счета, акты, договоры.
  • Инструкции и материалы: длинные мануалы, видео-курсы, PDF.
  • Подтверждения: бронирование, регистрация на мероприятие.
  • Восстановление доступа к личному кабинету.
  • Транзакционные уведомления для пользователей, которые хотят дублей.

Push в боте — короткие и оперативные, email — длинные и архивные. Связка покрывает оба сценария.

Способы отправки

Три варианта по сложности:

  1. Прямая SMTP-отправка через smtplib (Python) или net/smtp (Go) на ваш почтовый сервер. Подходит для малых объёмов.
  2. SMTP-шлюзы: Yandex 360, Mail.ru для бизнеса, Postmark, Mailgun (с зарубежной оплатой). Берут на себя инфраструктуру и репутацию.
  3. Транзакционные сервисы: SendPulse, UniSender Go, DashaMail — российские провайдеры с API и хорошей доставляемостью.

Для бота с потоком до 1000 писем в день обычно хватает варианта 2 или 3. Прямой SMTP с собственного сервера часто упирается в репутацию IP и фильтры спама.

Архитектура отправки

Email — это всегда асинхронная операция. Никакого SMTP-вызова в обработчике webhook:

  1. Бот получает событие (заказ оплачен, регистрация завершена).
  2. Кладёт задачу «отправить письмо» в очередь (Redis Streams, RabbitMQ).
  3. Воркер забирает задачу, рендерит шаблон, отправляет через SMTP/API.
  4. Результат пишется в БД: успех, ошибка, время отправки.

При ошибках воркер делает retry с экспоненциальным backoff. Если письмо не доставлено за N попыток — алерт в чат поддержки.

Шаблоны и рендер

Шаблоны email — это HTML с подстановками. Что используется:

  • Jinja2 (Python) или html/template (Go) — стандарты.
  • MJML — высокоуровневый язык, который компилируется в кросс-клиентский HTML.
  • Inline CSS — большинство почтовых клиентов плохо понимают <style> блоки. Используем инлайнер.
  • Тестирование в Litmus / Email on Acid — проверка отображения в Outlook, Gmail, mail.ru.

Шаблоны хранятся в репозитории, версионируются. Тексты можно вынести в БД, чтобы маркетолог менял без релиза.

Доставляемость

Главный риск email — попасть в спам. Что обязательно:

  • SPF, DKIM, DMARC настроены на домене отправителя. Без этого письма уходят в спам массово.
  • Подогретый домен: новый домен сначала отправляет немного, постепенно наращивает объём.
  • Чистая база: невалидные адреса убираем сразу, отписки уважаем.
  • Один тип контента в письме: не смешивайте маркетинг и транзакции в одном шаблоне.
  • Unsubscribe в каждом письме — обязательно по 152-ФЗ и 38-ФЗ «О рекламе».

Хороший провайдер сам мониторит репутацию домена и алертит при ухудшении доставляемости.

Связка с ботом

Бот и email работают в связке:

  • В боте — оперативное уведомление: «Заказ оплачен. Подтверждение отправлено на ваш email».
  • В email — подробности: чек, договор, инструкции.
  • При ошибке доставки email — алерт в боте: «Письмо не дошло. Хотите, отправим ещё раз?».
  • При желании пользователя — отписка от email-канала через бот.

Это улучшает UX: пользователь не ходит в спам-папку, а видит в боте, что у него идёт по почте.

Хранение писем и аудит

Для критичных писем (договоры, чеки) храним в S3-совместимом хранилище:

  • Каждое отправленное письмо — файл с темой, телом, получателем, datetime.
  • Срок хранения — по требованиям бизнеса и регуляторики (для финансовых документов 5 лет).
  • Доступ — только админам через защищённый интерфейс.

При спорах это даёт возможность показать точную копию письма, которое получил пользователь.

Стоимость

Оценочная стоимость email-канала:

  • SMTP-шлюз: 300–2000 ₽/мес для объёмов до 10 000 писем.
  • Транзакционный сервис: 0.30–1 ₽ за письмо при оплате по факту.
  • Разработка интеграции: 20–60 тыс. ₽ для типового проекта (шаблоны + очередь + 5–10 типов писем).

Email — один из самых дешёвых каналов уведомлений. Его доставляемость и архивность сложно повторить чем-то ещё.

Итого

Email-канал из бота MAX подключается через очередь и транзакционный сервис рассылок (российские SendPulse, UniSender Go или SMTP-шлюз Yandex 360). Обязательны SPF/DKIM/DMARC, подогретый домен, корректные шаблоны и кнопка отписки. Связка «бот + email» закрывает оба запроса пользователя — оперативные уведомления в мессенджере и архивные документы в почте. Реализуется за неделю, стоит копейки на письмо.

Частые вопросы

Зачем боту MAX отправлять email, если есть push в мессенджере?

Push в боте — короткие и оперативные, email — длинные и архивные. Связка покрывает оба сценария. Устойчивые случаи для email: финансовые документы (чеки, счета, акты, договоры), длинные инструкции и материалы (мануалы, видео-курсы, PDF), подтверждения бронирования или регистрации на мероприятие, восстановление доступа к личному кабинету, транзакционные уведомления для пользователей, которые хотят дублей. Пользователь хочет иметь чек или договор в почте — там он не потеряется и поиск по теме найдёт за секунды.

Как технически отправлять email из бота MAX?

Через очередь и транзакционный сервис, никогда из обработчика webhook напрямую. Бот получает событие (заказ оплачен, регистрация завершена), кладёт задачу «отправить письмо» в очередь (Redis Streams, RabbitMQ). Воркер забирает задачу, рендерит шаблон, отправляет через SMTP/API. Результат пишется в БД: успех, ошибка, время отправки. При ошибках воркер делает retry с экспоненциальным backoff. Если письмо не доставлено за N попыток — алерт в чат поддержки.

Какие сервисы рассылок подходят для бота MAX в РФ?

Три варианта по сложности. Прямая SMTP-отправка через smtplib (Python) или net/smtp (Go) на ваш почтовый сервер — для малых объёмов. SMTP-шлюзы: Yandex 360, Mail.ru для бизнеса (берут на себя инфраструктуру и репутацию). Транзакционные сервисы: SendPulse, UniSender Go, DashaMail — российские провайдеры с API и хорошей доставляемостью. Для бота с потоком до 1000 писем в день обычно хватает варианта 2 или 3. Прямой SMTP с собственного сервера часто упирается в репутацию IP и фильтры спама.

Как настроить доставляемость email из бота, чтобы не попадать в спам?

Пять обязательных вещей. SPF, DKIM, DMARC настроены на домене отправителя — без этого письма уходят в спам массово. Подогретый домен: новый сначала отправляет немного, постепенно наращивает объём. Чистая база — невалидные адреса убираем сразу, отписки уважаем. Один тип контента в письме — не смешивайте маркетинг и транзакции в одном шаблоне. Unsubscribe в каждом письме — обязательно по 152-ФЗ и 38-ФЗ «О рекламе». Хороший провайдер сам мониторит репутацию домена и алертит при ухудшении доставляемости.

Как правильно делать HTML-шаблоны email из бота?

Через стандартные движки шаблонов плюс инлайнинг CSS. Jinja2 (Python) или html/template (Go) — стандарты для подстановки данных. MJML — высокоуровневый язык, который компилируется в кросс-клиентский HTML, удобен для сложных писем. Inline CSS обязателен — большинство почтовых клиентов плохо понимают <style> блоки. Тестирование в Litmus или Email on Acid — проверка отображения в Outlook, Gmail, mail.ru. Шаблоны хранятся в репозитории, версионируются. Тексты можно вынести в БД, чтобы маркетолог менял без релиза.

Сколько стоит email-канал для бота MAX?

Email — один из самых дешёвых каналов уведомлений. SMTP-шлюз: 300–2000 ₽/мес для объёмов до 10 000 писем. Транзакционный сервис: 0.30–1 ₽ за письмо при оплате по факту (выгодно при больших объёмах с пиками). Разработка интеграции: 20–60 тыс. ₽ для типового проекта (шаблоны, очередь, 5–10 типов писем, мониторинг доставляемости). Окупается на первой же сотне отправленных договоров или чеков. Доставляемость и архивность сложно повторить чем-то ещё — даже SMS дороже и не хранят содержимое.