Skip to content

Интеллектуальный сервис автоматизации email-рассылок с системой мониторинга попыток отправки, кэшированием статистики и многоуровневым управлением доступом.

Notifications You must be signed in to change notification settings

AJLbN0H/mailflow-automation-service

Repository files navigation

MailFlow: Система автоматизации и мониторинга рассылок

MailFlow — это полнофункциональный бэкенд-сервис для создания и управления почтовыми рассылками. Проект ориентирован на автоматизацию маркетинговых задач и предоставляет детальную аналитику по каждой попытке отправки.

Технологический стек

  • Framework: Django 5.2+.
  • База данных: PostgreSQL.
  • Кэширование и производительность: Redis (используется для хранения QuerySets и страниц).
  • Почтовый протокол: SMTP (интеграция с Yandex Mail).
  • Планировщик: Интеграция с библиотекой schedule / django-scheduler.
  • Среда: Python 3.13+, Poetry, python-dotenv.

Функциональные возможности

1. Управление рассылками (Campaign Management)

Гибкая настройка параметров рассылки: время старта, периодичность и статус. Система поддерживает автоматический переход состояний («Создана» -> «Запущена» -> «Завершена»).

2. Мониторинг и логирование (Delivery Tracking)

Каждая попытка отправки фиксируется в модели AttemptToSend. Система сохраняет:

  • Дату и время последней попытки.
  • Статус (успешно/ошибка).
  • Ответ почтового сервера (для быстрой диагностики проблем с доставкой).

3. Оптимизация нагрузки (Cache-aside Pattern)

Для снижения нагрузки на БД реализовано агрессивное кэширование:

  • Статистика на главной странице (счетчики активных рассылок, уникальных клиентов) сохраняется в Redis.
  • Списки сообщений и клиентов кэшируются на уровне контроллеров (get_queryset).

4. Ролевая модель доступа

Реализованы специфические права доступа для персонала:

  • Просмотр любых рассылок и списка клиентов без права редактирования.
  • Возможность блокировки/деактивации пользователей и отключения подозрительных рассылок (permissions: can_deactivation_user, can_newsletter_is_disabled).

Установка и настройка

  1. Клонирование: git clone https://github.com/AJLbN0H/mailflow-automation-service.git

  2. Конфигурация: Заполните .env файл (.env.example)

  3. Запуск через Poetry: poetry install python manage.py migrate python manage.py runserver

Аналитика проекта

На главной странице сервиса реализован Dashboard, отображающий:

  • Общее количество рассылок.
  • Количество активных (запущенных) кампаний.
  • Количество уникальных получателей в базе.

About

Интеллектуальный сервис автоматизации email-рассылок с системой мониторинга попыток отправки, кэшированием статистики и многоуровневым управлением доступом.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published