Telegram-бот и invite-коды в TelePost

TGPT начинается не с отдельной панели регистрации, а с понятного Telegram-сценария. Администратор создаёт почтовый ящик, получает короткий invite-code и передаёт его пользователю. Пользователь активирует код прямо в Telegram и сразу видит кнопку для открытия Mini App.

Такой подход нужен для закрытого или полу-закрытого сервиса, где ящики не должны появляться случайно. Администратор сохраняет контроль над тем, какие адреса выдаются и кому они достаются, а пользователь не проходит длинную регистрацию, не вводит почтовые настройки и не настраивает клиент вручную.

Что решает бот

Бот берёт на себя самый чувствительный участок onboarding — выдачу доступа к почтовому ящику:

  • администратор создаёт ящик командой /add;
  • бот создаёт аккаунт в Mox и сохраняет доступы в базе;
  • для пользователя выпускается invite-code с ограниченным сроком действия;
  • пользователь активирует код командой /activate;
  • после активации Telegram показывает кнопку Web App для перехода в почту.

В админской части есть команды /add, /del, /codes и /revoke. Они покрывают весь базовый цикл: создать ящик, удалить его, посмотреть invite-коды и отозвать код, если его больше не нужно использовать.

Как выдаётся ящик

С точки зрения администратора сценарий остаётся коротким и предсказуемым:

  1. Администратор отправляет боту команду /add email@example.com.
  2. Бот генерирует пароль для нового почтового аккаунта.
  3. Через Mox создаётся почтовый ящик.
  4. Пароль сохраняется не открытым текстом, а в зашифрованном виде.
  5. Бот создаёт invite-code и задаёт срок действия на семь дней.
  6. Администратор получает сообщение с кодом и командой активации для пользователя.

Ключевая деталь здесь — разделение создания ящика и подключения пользователя. Ящик можно подготовить заранее, но до активации он ещё не привязан к Telegram-пользователю. Это даёт администратору время выдать доступ тогда, когда он действительно нужен, и не открывать ящик случайному человеку.

Как пользователь активирует доступ

Для пользователя всё сводится к одному действию: он получает код и отправляет боту команду /activate CODE. После этого backend проверяет:

  • существует ли такой invite-code;
  • не был ли он уже использован;
  • не истёк ли срок действия;
  • к какому email относится код.

Если проверка проходит, код помечается активированным, email связывается с Telegram-пользователем, а бот отправляет кнопку «Открыть почту». С этого момента вход в mail workflow становится естественным продолжением Telegram-диалога: кнопка запускает Telegram Mini App, где пользователь уже работает с письмами.

Почему это удобно

У такого flow есть несколько практичных плюсов.

Во-первых, выдача ящика остаётся контролируемой. Администратор сам создаёт email и может отозвать код до активации, если доступ передумали выдавать или код оказался не у того человека.

Во-вторых, пользователю не нужно знать IMAP, SMTP, пароль от ящика или параметры сервера. Для него подключение выглядит как обычная команда в Telegram, после которой появляется понятная кнопка входа в почту.

В-третьих, credentials остаются на стороне сервиса. Пароль от почтового аккаунта хранится зашифрованным и используется backend-логикой для работы с Mox, а не передаётся пользователю как настройка почтового клиента. Пользователь получает не набор технических параметров, а готовый вход в свой mailbox.

Где этот сценарий продолжается

После активации бот передаёт пользователя дальше — в Mini App и интерфейс TelePost. Там он уже работает с почтой: читает входящие, открывает папки, пишет письма и сохраняет черновики. Подробнее об этом — в статье Telegram Mini App Mail.