# ✨ Слать готовый текст на почту из учётной записи - **Тип:** feature - **Категория:** Очередь - **Зачем:** Адрес почты приходит вместе с входом через OIDC, но почтового отправителя в сервисе нет. - **Теги:** goal:ready-notification Двигает пункты 1, 2 и 3 «Завершения» цели: готовый текст и отказ доходят письмом, а адрес берётся у учётной записи, а не из общего конфига. Почта — второй канал рядом с тем, что заводит `ntfy-delivery`; выбор канала остаётся в той же единой точке, что и сейчас. ## Затрагивает - реализация интерфейса отправителя уведомления — почтовый адаптер; - адрес почты из данных учётной записи OIDC и его хранение; - выбор канала по настройке пользователя в `completeJob` и `failJob`; - секция конфигурации: сервер отправки почты, учётные данные, адрес отправителя; - `docs/architecture.md` — внешняя зависимость и чем она отказывает; - `docs/security.md` — текст расшифровки уходит на почтовый сервер. ## Критерии приёмки - Задача, дошедшая до `done` у пользователя с выбранной почтой, отправляет одно письмо на адрес владельца. Оракул — тест с подставным отправителем: ровно один вызов, адрес владельца, текст задачи в теле. - Недоступный почтовый сервер не мешает задаче завершиться. Оракул — тест с отправителем, возвращающим ошибку: задача в `done`, в журнале одна запись уровня `WARN`. - Отказ задачи доходит письмом тем же человекочитаемым текстом, что видит пользователь Telegram. Оракул — тест на ветке `failJob`. - Пароль почтового сервера не попадает ни в журнал, ни в текст письма. Оракул — тест отправки с перехваченным журналом. ## Рамки Берётся после `ntfy-delivery` — интерфейс отправителя заводит она — и после `settings-screen`, где канал выбирают. Своего почтового сервера не поднимаем. Длинный текст в письме не делится на части: предел сообщения есть у Telegram, а не у почты.