feat: add HTML email body for --send (#48)
Add email.html config flag (default false). When enabled, --send includes an HTML version of the report body generated via HTMLFormatter alongside the plain-text part in a multipart/alternative message. - EmailConfig gains html: bool field - mailer.build_message/send_report accept rows for HTML generation - CLI passes rows to send_report - --init-config generates email.html: false - README.md and docs/CONFIG.md updated Bump version to 1.10.0. Closes #48
This commit is contained in:
@@ -47,6 +47,7 @@ report:
|
||||
no_time: false
|
||||
|
||||
email:
|
||||
html: false
|
||||
smtp:
|
||||
host: smtp.example.com
|
||||
port: 587
|
||||
@@ -127,6 +128,7 @@ redmine-reporter --commit
|
||||
| `subject` | строка | `"Отчёт {author} за {period}"` | Тема письма |
|
||||
| `body_text` | строка | `"Во вложении отчёт."` | Текст письма (plain text) |
|
||||
| `attach` | bool | `true` | Прикреплять файл отчёта. Если `false` — только текст |
|
||||
| `html` | bool | `false` | Добавить HTML-версию тела письма (`multipart/alternative`) |
|
||||
|
||||
**Подстановки в `subject` и `body_text`:**
|
||||
|
||||
@@ -152,6 +154,7 @@ redmine-reporter --commit
|
||||
|
||||
```yaml
|
||||
email:
|
||||
html: false
|
||||
smtp:
|
||||
host: smtp.example.com
|
||||
port: 587
|
||||
@@ -181,7 +184,9 @@ email:
|
||||
2. Сохраняет отчёт в файл:
|
||||
- Если указан `--output` — по явному пути.
|
||||
- Если `--output` не указан — по шаблону из `output.dir` / `output.filename`.
|
||||
3. Формирует MIME-письмо: тема, текст, вложение (с корректным MIME-типом).
|
||||
3. Формирует MIME-письмо:
|
||||
- Тема, plain-text тело и вложение (если `attach: true`).
|
||||
- При `email.html: true` — дополнительно HTML-версия тела (`multipart/alternative`), сгенерированная из таблицы отчёта.
|
||||
4. Отправляет через SMTP с TLS (таймаут 30 секунд).
|
||||
|
||||
**Файл отчёта сохраняется до попытки отправки** — при ошибке SMTP файл остаётся
|
||||
@@ -216,6 +221,7 @@ redmine-reporter --date 2026-06-01--2026-06-30 --send --commit
|
||||
| `--send` | Сохранить по шаблону → отправить |
|
||||
| `--send --output X` | Сохранить в X → отправить |
|
||||
| `--send --commit` | Сохранить → отправить → зафиксировать период |
|
||||
| `--send` с `email.html: true` | Письмо с plain-text + HTML-таблицей |
|
||||
| `--send` без `email` в конфиге | Ошибка, exit 1 |
|
||||
| `--send` при ошибке SMTP | Файл сохранён, ошибка в stderr, exit 1 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user