MailFlow — это полнофункциональный бэкенд-сервис для создания и управления почтовыми рассылками. Проект ориентирован на автоматизацию маркетинговых задач и предоставляет детальную аналитику по каждой попытке отправки.
- Framework: Django 5.2+.
- База данных: PostgreSQL.
- Кэширование и производительность: Redis (используется для хранения QuerySets и страниц).
- Почтовый протокол: SMTP (интеграция с Yandex Mail).
- Планировщик: Интеграция с библиотекой
schedule/django-scheduler. - Среда: Python 3.13+, Poetry, python-dotenv.
Гибкая настройка параметров рассылки: время старта, периодичность и статус. Система поддерживает автоматический переход состояний («Создана» -> «Запущена» -> «Завершена»).
Каждая попытка отправки фиксируется в модели AttemptToSend. Система сохраняет:
- Дату и время последней попытки.
- Статус (успешно/ошибка).
- Ответ почтового сервера (для быстрой диагностики проблем с доставкой).
Для снижения нагрузки на БД реализовано агрессивное кэширование:
- Статистика на главной странице (счетчики активных рассылок, уникальных клиентов) сохраняется в Redis.
- Списки сообщений и клиентов кэшируются на уровне контроллеров (
get_queryset).
Реализованы специфические права доступа для персонала:
- Просмотр любых рассылок и списка клиентов без права редактирования.
- Возможность блокировки/деактивации пользователей и отключения подозрительных рассылок (permissions:
can_deactivation_user,can_newsletter_is_disabled).
-
Клонирование:
git clone https://github.com/AJLbN0H/mailflow-automation-service.git -
Конфигурация: Заполните .env файл (.env.example)
-
Запуск через Poetry:
poetry installpython manage.py migratepython manage.py runserver
На главной странице сервиса реализован Dashboard, отображающий:
- Общее количество рассылок.
- Количество активных (запущенных) кампаний.
- Количество уникальных получателей в базе.