mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 09:15:09 +00:00
27 lines
1.8 KiB
Markdown
27 lines
1.8 KiB
Markdown
# 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`) |