Почта в Telegram Mini App TelePost

TGPT делает почтовый интерфейс внутри Telegram Mini App. Идея простая: пользователь открывает Web App из бота и работает с ящиком без отдельного почтового клиента. В одном интерфейсе доступны входящие, папки, чтение писем, создание письма, черновики, контакты, настройки и формы.

Это не попытка заменить большой корпоративный webmail. Скорее, это компактный рабочий слой для сценариев, где Telegram уже является основным местом общения и уведомлений.

Из чего состоит интерфейс

Frontend подключает несколько основных экранов:

  • Inbox — список писем и папок;
  • Compose — создание и отправка письма;
  • Settings — настройки;
  • Contacts — контакты;
  • Forms — управление публичными формами.

Inbox загружает папки выбранного аккаунта через API. Если у пользователя несколько ящиков, интерфейс может работать с выбранным аккаунтом и сохранять этот выбор в браузерном хранилище.

Чтение писем и папки

Почтовая часть строится вокруг аккаунтов, папок и сообщений. API содержит маршруты для accounts, folders, messages, drafts и attachments. Это позволяет интерфейсу не держать всю почтовую логику на клиенте, а работать через понятные backend-endpoints.

Папки нужны не только для Inbox и Sent. В TelePost также учитываются сценарии Drafts и scheduled: черновики и запланированные письма хранятся как отдельная логика поверх таблицы drafts. Для пользователя это выглядит как обычные рабочие разделы почты.

С письмами можно делать базовые действия: открыть, прочитать, архивировать, удалить, отложить через snooze. Удаление реализовано аккуратно: для обычных папок письмо сначала перемещается в Trash, а окончательное удаление применяется уже в корзине.

Создание письма

Compose закрывает обычный сценарий отправки:

  1. пользователь выбирает получателей;
  2. заполняет тему и текст;
  3. при необходимости добавляет вложения;
  4. письмо сохраняется как черновик;
  5. затем отправляется сразу или планируется на будущее время.

Компонент Compose работает с получателями, черновиком, вложениями, AI-действиями и scheduled sending. Это важно для Mini App: пользователь может начать письмо, закрыть интерфейс и продолжить позже, не потеряв текст.

Как идёт отправка

Отправка устроена через backend:

  1. UI создаёт или обновляет черновик.
  2. API берёт credentials нужного аккаунта.
  3. Письмо отправляется через SMTP Mox.
  4. Сформированное письмо добавляется в IMAP-папку Sent.
  5. Запись об отправленном письме сохраняется в PostgreSQL.
  6. Временные вложения после отправки очищаются.

Для пользователя это выглядит как обычная отправка из webmail, но под капотом TelePost синхронизирует состояние между Mox и своей базой.

Черновики и запланированная отправка

Черновики хранятся в PostgreSQL: у них есть получатели, тема, body, вложения, статус и поле scheduled_at. Благодаря этому можно поддерживать автосохранение и отдельную виртуальную папку для запланированных писем.

Запланированная отправка работает через статус scheduled: воркер забирает due-черновики и отправляет их тем же механизмом, что и обычные письма.

Зачем это полезно

Главная польза Mini App в том, что почта становится ближе к месту, где пользователь уже получает уведомления. Можно открыть письмо из Telegram, быстро ответить, проверить папку, найти контакт или дописать черновик без перехода в отдельное приложение.

В связке с ботом это даёт цельный сценарий: бот подключает ящик и присылает уведомления, а Mini App даёт рабочий интерфейс для чтения и отправки писем. О выдаче ящиков через бота подробнее написано в статье Telegram-бот и invite-коды.