Files
transcriber/tasks/items/email-notification.md
T
av d2c85af80a tasks: целевая картина пересобрана — три цели, тринадцать задач, сдвинутые границы
- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов,
  машинная вычитка расшифровки внутри границ, приложение — основной вход;
  добавлены две границы: не файловое хранилище общего назначения и не биллинг;
- заведены цели upload-reliability, user-settings, usage-stats и тринадцать
  задач; очередь пересобрана — сперва починки, затем разведки о хранилище,
  затем доступ и владелец, и только потом экраны;
- архитектура: четыре новых открытых вопроса — приём большого файла, учёт
  расхода, срок хранения, потолок шести часов.
2026-08-11 10:05:22 +03:00

3.0 KiB

Слать готовый текст на почту из учётной записи

  • Тип: 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, а не у почты.