Почта в Telegram Mini App TelePost
TGPT переносит почтовый интерфейс в Telegram Mini App. Пользователь открывает Web App из бота и работает с ящиком там же, где уже получает сообщения и уведомления, без отдельного почтового клиента и лишнего переключения контекста.
Внутри остаётся привычная почтовая логика: входящие, папки, чтение писем, создание письма, черновики, контакты, настройки и формы. TelePost не пытается заменить большой корпоративный 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 закрывает привычный сценарий отправки:
- пользователь выбирает получателей;
- заполняет тему и текст;
- при необходимости добавляет вложения;
- письмо сохраняется как черновик;
- затем отправляется сразу или планируется на будущее время.
Компонент Compose работает с получателями, черновиком, вложениями, AI-действиями и scheduled sending. Для Mini App это особенно важно: письмо можно начать в Telegram, закрыть интерфейс и вернуться к нему позже, не теряя текст и контекст.
Как идёт отправка
Отправка устроена через backend:
- UI создаёт или обновляет черновик.
- API берёт credentials нужного аккаунта.
- Письмо отправляется через SMTP Mox.
- Сформированное письмо добавляется в IMAP-папку Sent.
- Запись об отправленном письме сохраняется в PostgreSQL.
- Временные вложения после отправки очищаются.
Для пользователя это остаётся обычной отправкой из webmail: нажал отправить — письмо ушло. Под капотом TelePost при этом синхронизирует состояние между Mox и своей базой, чтобы отправленное письмо было не только доставлено, но и отражено в почтовом интерфейсе.
Черновики и запланированная отправка
Черновики хранятся в PostgreSQL: у них есть получатели, тема, body, вложения, статус и поле scheduled_at. Такая модель поддерживает автосохранение и отдельную виртуальную папку для запланированных писем, поэтому незавершённая работа не пропадает после закрытия Mini App.
Запланированная отправка работает через статус scheduled: воркер забирает due-черновики и отправляет их тем же механизмом, что и обычные письма.
Зачем это полезно
Главная польза Mini App в том, что почта оказывается рядом с местом, где пользователь уже получает уведомления. Можно открыть письмо из Telegram, быстро ответить, проверить папку, найти контакт или дописать черновик без перехода в отдельное приложение.
В связке с ботом это складывается в цельный сценарий: бот подключает ящик и присылает уведомления, а Mini App даёт рабочий интерфейс для чтения, разбора и отправки писем. О выдаче ящиков через бота подробнее написано в статье Telegram-бот и invite-коды.