Автоотправка по почте #45
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Контекст
После генерации отчёта пользователь вручную отправляет его руководителю или в командный чат. Это рутинное действие, которое можно автоматизировать.
Предложение
Добавить возможность отправлять сгенерированный отчёт по email сразу после генерации. Все настройки SMTP и email живут в YAML-конфиге (
~/.config/redmine-reporter/config.yml), см. #46.Структура в конфиге
Поля
email.smtp.host— SMTP-сервер.email.smtp.port— порт.email.smtp.user— логин для SMTP.email.smtp.password— пароль. Рекомендуется${SMTP_PASSWORD}из env, но можно и явно.email.smtp.tls— использовать STARTTLS (true/false).email.from— адрес отправителя.email.to— список получателей.email.cc,email.bcc— опционально.email.subject— шаблон темы. Подстановки:{author},{from},{to}.email.body_text— текст письма.email.attach— прикреплять ли сгенерированный отчёт (true/false).Поведение CLI
--emailзапускает отправку.--emailуказан, но не указан--output, отчёт сохраняется во временный файл (или вoutput.dirиз #43) и прикрепляется к письму.--emailуказан без сгенерированного файла (например, консольный вывод), выводится ошибка.emailне заполнена,--emailвыводит понятное сообщение об ошибке.Автофиксация периода
При отправке отчёта по почте логично автоматически фиксировать момент отправки, чтобы следующий отчёт не включал уже отправленные time entries. Поведение зависит от
period.precision(#47):period.precision: date— фиксируется дата отправки, следующий отчёт начинаётся со следующего дня.period.precision: datetime— фиксируется момент времени отправки, следующий отчёт начинаётся с этого же момента.Можно реализовать явно через
--commit --emailили автоматически, если--emailактивирует--commitнеявно. Это нужно решить при реализации.Примеры
HTML-письмо (опционально)
В будущем можно добавить
email.body_htmlи встроенную таблицу отчёта в письмо. В рамках этой задачи достаточно текстового письма с вложением.Связанные задачи
datetimeв периоде;--emailдолжен корректно фиксировать момент отправки.--commitможет запускаться вместе с--email.Критерии приёмки
config.ymlподдержаны секцииemailиemail.smtp.--emailотправляет отчёт по настроенным адресатам.to,cc,bcc.${SMTP_PASSWORD}из env.--emailпериод фиксируется с учётомperiod.precision(#47).