Хотя MAX сам по себе — мессенджер, бизнесу часто нужно дублировать важные уведомления через email. Чек, договор, инструкции, приглашение в проект — всё это пользователь хочет иметь в почте. Разберём, как правильно подключить email-канал к боту MAX.
Когда нужен email из бота
Не всё уместно отправлять в почту, но есть устойчивые сценарии:
- Финансовые документы: чеки, счета, акты, договоры.
- Инструкции и материалы: длинные мануалы, видео-курсы, PDF.
- Подтверждения: бронирование, регистрация на мероприятие.
- Восстановление доступа к личному кабинету.
- Транзакционные уведомления для пользователей, которые хотят дублей.
Push в боте — короткие и оперативные, email — длинные и архивные. Связка покрывает оба сценария.
Способы отправки
Три варианта по сложности:
- Прямая SMTP-отправка через
smtplib(Python) илиnet/smtp(Go) на ваш почтовый сервер. Подходит для малых объёмов. - SMTP-шлюзы: Yandex 360, Mail.ru для бизнеса, Postmark, Mailgun (с зарубежной оплатой). Берут на себя инфраструктуру и репутацию.
- Транзакционные сервисы: SendPulse, UniSender Go, DashaMail — российские провайдеры с API и хорошей доставляемостью.
Для бота с потоком до 1000 писем в день обычно хватает варианта 2 или 3. Прямой SMTP с собственного сервера часто упирается в репутацию IP и фильтры спама.
Архитектура отправки
Email — это всегда асинхронная операция. Никакого SMTP-вызова в обработчике webhook:
- Бот получает событие (заказ оплачен, регистрация завершена).
- Кладёт задачу «отправить письмо» в очередь (Redis Streams, RabbitMQ).
- Воркер забирает задачу, рендерит шаблон, отправляет через SMTP/API.
- Результат пишется в БД: успех, ошибка, время отправки.
При ошибках воркер делает 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 дороже и не хранят содержимое.