Перейти к содержанию

Настройки почты и отправка сообщений

Описание

В Planiqum отправка сообщений реализована с использованием библиотеки Celery для асинхронной обработки задач. Это позволяет эффективно управлять отправкой писем, особенно при наличии большого количества получателей или необходимости прикрепления файлов.

Основные функции

send_mail_task

  • Модуль: src/planiqum/core/tasks.py
  • Описание: Отправляет одиночное письмо с возможностью прикрепления файлов и использования HTML-сообщений.
  • Сигнатура:
def send_mail_task(
    subject,
    message="",
    from_email=None,
    recipient_list=None,
    fail_silently=False,
    auth_user=None,
    auth_password=None,
    connection=None,
    html_message=None,
    attachments=None,
)
  • Параметры:

  • subject (str, обязательный): Тема письма.

  • message (str, необязательный): Текст сообщения.
  • from_email (str, необязательный): Адрес отправителя.
  • recipient_list (list, обязательный): Список получателей.
  • fail_silently (bool, необязательный): Если True, ошибки не будут выбрасываться.
  • auth_user (str, необязательный) и auth_password (str, необязательный): Данные для аутентификации на почтовом сервере.
  • connection (object, необязательный): Объект соединения с почтовым сервером.
  • html_message (str, необязательный): HTML-версия сообщения.
  • attachments (list, необязательный): Список вложений.

send_mass_mail_task

  • Модуль: src/planiqum/core/tasks.py
  • Описание: Отправляет несколько писем за одно соединение.
  • Сигнатура:
def send_mass_mail_task(
    data, fail_silently=False, auth_user=None, auth_password=None, connection=None
)
  • Параметры:

  • data: Список словарей с параметрами для каждого письма.

  • fail_silently, auth_user, auth_password, connection: Аналогично send_mail_task.

Переменные окружения

  • EMAIL_HOST: Адрес почтового сервера. (По умолчанию: None)
  • EMAIL_PORT: Порт почтового сервера. (По умолчанию: 1025)
  • EMAIL_HOST_USER: Email, используемый для отправки писем. (По умолчанию: None)
  • EMAIL_HOST_PASSWORD: Пароль для аутентификации. (По умолчанию: None)
  • DEFAULT_FROM_EMAIL: Адрес отправителя по умолчанию. (По умолчанию: EMAIL_HOST_USER)
  • SERVER_EMAIL: Адрес для уведомлений об ошибках. (По умолчанию: EMAIL_HOST_USER)
  • ADMIN_EMAIL: Адрес для сообщений об ошибках. (По умолчанию: SERVER_EMAIL)
  • SEND_EMAIL: Если False, письма не будут отправляться. (По умолчанию: True)

Использование Celery

Celery используется для асинхронной отправки писем, что позволяет не блокировать основной поток выполнения приложения. Задачи отправки писем определены в модуле src/planiqum/core/tasks.py и могут быть вызваны из любого места приложения.

Пример использования

from planiqum.core.tasks import send_mail_task

send_mail_task.delay(
    subject="Тестовое письмо",
    message="Это тестовое сообщение",
    from_email="example@example.com",
    recipient_list=["recipient@example.com"],
    html_message="<p>Это <strong>тестовое</strong> сообщение</p>"
)