- Реализовать интерфейс заполнения рассылок, то есть CRUD-механизм для управления рассылками.
- Реализовать скрипт рассылки, который работает по расписанию.
- Добавьте настройки конфигурации для периодического запуска задачи.
- Клиент сервиса:
- контактный email,
- ФИО,
- комментарий.
- Рассылка (настройки):
- время рассылки;
- периодичность: раз в день, раз в неделю, раз в месяц;
- статус рассылки: завершена, создана, запущена.
- Сообщение для рассылки:
- тема письма,
- тело письма.
- Логи рассылки:
- дата и время последней попытки;
- статус попытки;
- ответ почтового сервера, если он был.
После создания новой рассылки, если текущее время больше времени начала и меньше времени окончания, то должны быть выбраны из справочника все клиенты, которые указаны в настройках рассылки, и запущена отправка для всех этих клиентов. Если создается рассылка со временем старта в будущем, то отправка должна стартовать автоматически по наступлению этого времени без дополнительных действий со стороны пользователя системы. По ходу отправки сообщений должна собираться статистика по каждому сообщению для последующего формирования отчетов.