Сервис для создание рассылок для ваших клиентов.
python = "^3.11"
django = "^4.2.4"
python-dotenv = "^1.0.0"
psycopg2-binary = "^2.9.7"
pillow = "^10.0.0"
django-apscheduler = "^0.6.2"
django-crontab = "^0.7.1"
- Клонируйте репозиторий:
git clone https://github.com/Memorizu/iMailingService.git
- Создайте виртуальное окружение:
poetry init
- Активируйте виртуальное окружение:
poetry shell
- Установите зависимости:
poetry install
- Примените миграции:
python manage.py migrate
Зарегистрируйтесь на проекте и подтвердите регистрацию по ссылке в почте. Далее вы можете создать рассылки для своих клиентов. После создание рассылки apschduler автоматически отправит письмо в нужное время и изменит расписание следующей отправки.
def process_pending_mailings():
now = timezone.now() + timedelta(hours=3)
logger.info("Processing")
pending_mailings = Mailing.objects.all()
for mailing in pending_mailings:
next_send_time = calculate_next_send_time(mailing.frequency, mailing.mailing_time)
match mailing.status:
case Mailing.Status.CREATED:
if mailing.mailing_time <= now:
clients = mailing.clients.all()
for client in clients:
send_email(mailing, client)
mailing.status = Mailing.Status.STARTED
mailing.mailing_time = next_send_time
mailing.save()
case Mailing.Status.STARTED:
if mailing.mailing_time <= now:
clients = mailing.clients.all()
for client in clients:
send_email(mailing, client)
mailing.mailing_time = next_send_time
mailing.save()