Django База [2023]: Настройка почты для отправки писем через SMTP ✉️ #22
Django

Django База [2023]: Настройка почты для отправки писем через SMTP ✉️ #22

Razilator

В этой статье мы рассмотрим работу с почтой в Django через SMTP сервер. Отправка писем нам необходима для восстановления пароля, для отправки писем активации, а также для какой-либо рассылки.

Примечание: возможно эта статья по Yahoo и Google является не актуальной, так как код-пароль не всегда можно получить. Но вы можете дочитать и попробовать, вдруг у вас получится создать пароль.

В статье я рассмотрю два примера с Yahoo и Google. Они подходят как для англоязычного трафика, так и для русскоязычного.

Регистрация в Yahoo

Для работы с почтой и получения ключей нам необходимо сначала зарегистрироваться на сайте Yahoo :

Регистрация в Yahoo
Регистрация в Yahoo

На скриншоте примерные данные, вы вводите свои, которые вам необходимы.

После регистрации переходим в настройки нашего аккаунта:

Нажимаем settings
Нажимаем settings

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

Создание пароля для Django
Создание пароля для Django

Создаем пароль введя название нужного приложения, в моем случае это Notehunter (другой мой сайт). Нажимаем создать пароль и получаем его.

Полученный пароль
Полученный пароль

Настройка settings.py для Yahoo

Далее нам необходимо настроить конфигурацию Django, для этого перейдем в файл settings.py нашего проекта и в самый низ вставим следующий фрагмент свойств:

backend/settings.py
# Email settings

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_HOST = 'smtp.mail.yahoo.com'
EMAIL_PORT = '465'
EMAIL_USE_SSL = True

EMAIL_HOST_USER = 'ad.notehunter@yahoo.com'
EMAIL_HOST_PASSWORD = 'qkpipbudmjqhbvbj'

EMAIL_SERVER = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_ADMIN = ['notedeveloper@bk.ru']

Применяемые свойства:

  • EMAIL_HOST - представитель услуг (Yahoo)
  • EMAIL_PORT - порт SMTP для Yahoo - 465
  • EMAIL_USE_SSL - использовать защищенное соединение
  • EMAIL_HOST_USER - наш email адрес
  • EMAIL_HOST_PASSWORD - наш полученный пароль для приложения
  • EMAIL_SERVER - email сервера
  • DEFAULT_FROM_EMAIL с какого адреса будут отправляться письма
  • EMAIL_ADMIN - ваш главный email, куда будут все данные приходить с сайта.

Почта на Yahoo SMTP настроена.

Регистрация в Google

Нам необходимо зарегистрировать почту в Gmail .

Регистрируем почту
Регистрируем почту

Я регистрировал аккаунт для личного пользования, данные на скриншоте как пример.

Переходим к нашему созданному gmail аккаунту, и переходим в безопасность, находим двухэтапную защиту, и делаем ее.

Защищаем наш аккаунт
Защищаем наш аккаунт

Обязательно выбираем аутентификация через приложение, и подтверждение через телефон. Это необходимо, чтоб наш аккаунт не забанили.

Подтверждения
Подтверждения

Скачать Authenticator можно на ваш смартфон: Google Play Market | App store

Сделали двухэтапную аутентификацию? Приступаем к получению пароля для Django.

Пароли приложений
Пароли приложений
Где надпись приложение, выбираете другое
Где надпись приложение, выбираете другое

Вводим название нашего приложения, жмем создать и получаем наш пароль.

Настройка settings.py для Google

А теперь идем настраивать аккаунт в settings.py нашего проекта:

backend/settings.py
# Email settings

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = '587'
EMAIL_USE_TLS = True

EMAIL_HOST_USER = 'ad.notehunter@gmail.com'
EMAIL_HOST_PASSWORD = 'tfgipysvmjqxjvbi'

EMAIL_SERVER = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_ADMIN = ['notedeveloper@bk.ru']

Свойства для Google:

  • EMAIL_USE_TLS: Обратите внимание, что вместо EMAIL_USE_SSL мы используем EMAIL_USE_TLS.
  • EMAIL_PORT порт для гугла 587.
  • EMAIL_HOST - smtp.gmail.com Остальное все тоже самое, как и с Yahoo

На этом настройка завершена! Можете тестировать свои функции для отправки писем с сайта, но а я добавлю уроки по отправке письма активации после регистрации, а также добавлю возможность восстановить забытый пароль.

;