// от письма до действия · без магии
Как работает LetterBot
Полная цепочка от подключения к IMAP до Telegram-уведомления с кнопками. Каждый шаг — понятный и наблюдаемый.
Startup: проверка всего до первого письма
На старте: проверка конфига (2-file mode), инициализация SQLite с проверкой схемы, Telegram validation, IMAP healthcheck по каждому аккаунту. При сбое — честное сообщение об ошибке, а не тихий запуск.
IMAP polling с дедупликацией
Каждые N секунд (настраивается) — новые письма из каждого ящика. Дедупликация по Message-ID предотвращает повторную обработку. При IMAP-сбоях — управляемый backoff, а не бесконечные попытки.
Сегментация и извлечение
Тело письма очищается: убираются цитаты, подписи, disclaimer, forwarded-части. Из PDF и XLSX вложений извлекается текст. Определяется тип письма (INVOICE, CONTRACT, SECURITY_ALERT…).
Priority v2: скоринг с объяснениями
Детерминированный движок анализирует тип письма, суммы, дедлайны, тип вложения, историю отправителя, частотные аномалии. Результат: score, приоритет (URGENT/IMPORTANT/LOW) и список reason codes. Опциональный LLM — дополнительный сигнал.
Telegram-уведомление с кнопками
Одно письмо = одно сообщение: приоритет, тип, отправитель, саммари (2–3 строки), действие, вложение. Кнопки приоритета и снуза. Нажатие на кнопку = сигнал коррекции для обучения.
Снуз с памятью контекста
2 часа / завтра / следующая неделя. При возврате — полный контекст: тип письма, приоритет, предложенное действие, время получения. Не просто таймер — восстановление решения.
Daily и Weekly дайджесты
Ежедневная и еженедельная сводки в настроенное время. Дедупликация по chat_id — один чат получает один дайджест, даже при нескольких ящиках. Еженедельный включает: счета, договоры, обязательства, silent-partner risks.
Observability и SLA-мониторинг
Локальный web cockpit на localhost:8787. SLA доставки (p90 latency, delivery rate, error rate). Relationship health. Event stream. Doctor endpoint. Система знает о своём состоянии.