Django База [2023]: Настройка почты для отправки писем через SMTP ✉️ #22
В этой статье мы рассмотрим работу с почтой в Django через SMTP сервер. Отправка писем нам необходима для восстановления пароля, для отправки писем активации, а также для какой-либо рассылки.
Если вы хотите выразить благодарность автору сайта, статей и курса по Django, вы можете сделать это по ссылке ниже:
- Отдельная статья как настроить Yandex SMTP (работает отлично)
Примечание: возможно эта статья по Yahoo и Google является не актуальной, так как код-пароль не всегда можно получить. Но вы можете дочитать и попробовать, вдруг у вас получится создать пароль.
В статье я рассмотрю два примера с Yahoo и Google. Они подходят как для англоязычного трафика, так и для русскоязычного.
Регистрация в Yahoo
Для работы с почтой и получения ключей нам необходимо сначала зарегистрироваться на сайте Yahoo :
На скриншоте примерные данные, вы вводите свои, которые вам необходимы.
После регистрации переходим в настройки нашего аккаунта:
Далее в безопасность учетной записи и делаем двухэтапную проверку. После этого, мы должны создать пароль для нашего Django проекта.
Создаем пароль введя название нужного приложения, в моем случае это Notehunter (другой мой сайт). Нажимаем создать пароль и получаем его.
Настройка settings.py для Yahoo
Далее нам необходимо настроить конфигурацию Django, для этого перейдем в файл 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 - 465EMAIL_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 нашего проекта:
# 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
На этом настройка завершена! Можете тестировать свои функции для отправки писем с сайта, но а я добавлю уроки по отправке письма активации после регистрации, а также добавлю возможность восстановить забытый пароль.