Как настроить параметры SMTP для каждого письма на лету? - PullRequest
0 голосов
/ 09 января 2020

Мы можем настроить параметры SMTP глобально, определив эти переменные в settings.py:

EMAIL_HOST = 'SMTP_HOST'
EMAIL_PORT = 'SMTP_PORT'
EMAIL_HOST_USER = 'SMTP_USER'
EMAIL_HOST_PASSWORD = 'SMTP_PASSWORD'

Я хочу установить эти параметры по-разному для каждого электронного письма. Как я могу определить настройки SMTP на лету? Я имею в виду как раз перед отправкой.

1 Ответ

4 голосов
/ 09 января 2020

EmailMessage класс предоставляет вам эту опцию

Первый шаг - настроить бэкэнд электронной почты

from django.core.mail import EmailMessage
from django.core.mail.backends.smtp import EmailBackend
connection = EmailBackend(
    host=your_host, port=your_port, username=your_username, 
    password=your_password, use_tls=True, fail_silently=fail_silently
)

Затем все, что вам нужно сделать, это использовать ваши connection настройки

email = EmailMessage(
    subject=subject,
    body=body, 
    from_email=from_email, 
    to=[list_of_recipents, ], 
    connection=connection
)

email.send()
...