Как использовать Django для отправки электронных писем.

Предисловие

Django — это настолько разнообразная и сложная серверная веб-инфраструктура, что мы можем использовать ее для решения очень многих задач. Одна из этих замечательных вещей — использовать его для отправки электронных писем.

.

.

.

Шаг 1:

Прежде всего вам нужно импортировать следующее в верхнюю часть файла views.py:

from django.core.mail import send_mail

Это позволит вам использовать функцию send_mail, которая уже импортирована с Django. К счастью, это встроено в Django, поэтому нам не нужно беспокоиться об установке каких-либо пакетов с помощью pip.

Шаг 2:

Далее вам нужно просто создать обычный вид, такой как мой ниже:

def email_invoice(request)
   
    return render(request, 'email-invoice.html')

Шаг 3.

На следующем шаге вам нужно будет использовать функцию send_mail в выбранном вами представлении следующим образом:

def email_invoice(request)
   
   send_mail('Subject heading here', 'Your main message here', '[email protected]', ['[email protected]]', fail_silently=False,)
   
    return render(request, 'email-invoice.html')

Давайте далее проанализируем логику функции send_mail сверху…

send_mail(тема, сообщение, от кого отправлено письмо, кому отправлено письмо, письмо будет поднято исключение, если есть какие-либо проблемы)

Обратите внимание на порядок параметров в скобках выше (слева направо):

1 — Ваш предметный заголовок

2 — Каково ваше сообщение

3 — От кого приходит электронное письмо

4 — Кому должно быть отправлено электронное письмо

5 — Поднимите исключение, если есть какие-либо проблемы

Шаг 4:

Затем вам нужно будет убедиться, что вы настроили следующие параметры конфигурации в файле settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]' # - Choose a host email to send from
EMAIL_HOST_PASSWORD = 'app password' # - Your app password

В приведенном выше примере я использую smtp-сервер GMAIL. Конечно, вы можете использовать что-то еще, например, Amazon SES. Нам также необходимо настроить наш сервер электронной почты в соответствии с SMTP.

Порт по умолчанию будет порт 587, он будет отличаться в зависимости от различных провайдеров SMTP.

Нам нужно убедиться, что мы используем TLS для защиты нашего почтового обмена.

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

Итак, в этом примере я хочу, чтобы все мои уведомления по электронной почте и счета по электронной почте отправлялись из учетной записи Gmail.

С 2016 года возможность включения менее безопасных приложений отключена. Итак, теперь вам нужно будет сгенерировать пароль APP в своей учетной записи Gmail и использовать его в качестве пароля хоста электронной почты.

И это все! Приятного обучения!

Курсы Python Django

Первоначально опубликовано на https://www.cloudwithdjango.com 8 ноября 2022 г.