Настройки почты и отправка сообщений¶
Описание¶
В 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>"
)