mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 09:15:09 +00:00
Session 2026-09-15 code: imap_client (auth+metrics), handlers (TG date format), cron fix (venv python), openspec imap-realtime-sync proposal
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# email-attachments Specification
|
||||
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Вложения сохраняются в каталог письма
|
||||
|
||||
Для каждого письма с вложениями (флаг `has_attachment: true` в frontmatter)
|
||||
вложения MUST быть сохранены в подкаталог `attachments/` каталога письма
|
||||
(`/opt/hermes/email/<folder>/YYYY/MM/<uid>/attachments/`). Скачивание выполняется
|
||||
как при опросе по расписанию (текущее поведение), так и при событийной
|
||||
синхронизации (сервис `imap-realtime-sync`). Скачивание вложений MUST NOT
|
||||
выставлять флаг `\Seen`.
|
||||
|
||||
#### Scenario: Письмо с вложением архивировано
|
||||
- **WHEN** `mail_archive.py` заархивировал письмо с `has_attachment: true`
|
||||
- **THEN** файлы вложений лежат в `<msg_dir>/attachments/` и совпадают с вложениями на IMAP-сервере
|
||||
|
||||
#### Scenario: Вложения при событийной синхронизации
|
||||
- **GIVEN** новое письмо с вложением обнаружено сервисом `email-imap-stream`
|
||||
- **WHEN** письмо архивируется по событию IDLE
|
||||
- **THEN** вложения скачаны в `<msg_dir>/attachments/`, флаг `\Seen` не выставлен
|
||||
|
||||
#### Scenario: Вложения при reconcile
|
||||
- **GIVEN** письмо с вложением было пропущено (обрыв соединения)
|
||||
- **WHEN** сервис выполняет reconcile
|
||||
- **THEN** вложения докачиваются в `<msg_dir>/attachments/` (то же поведение,
|
||||
что существующий `--attachments-backfill`)
|
||||
Reference in New Issue
Block a user