Как использовать 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 и использовать его в качестве пароля хоста электронной почты.
И это все! Приятного обучения!
Первоначально опубликовано на https://www.cloudwithdjango.com 8 ноября 2022 г.