Django 12. Настройка отправки почты
В этом посте мы настроим Django на отправку почты.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 202223
Реклама
Для большинства сайтов важно иметь возможность отправлять письма пользователям, будь то письмо для сброса пароля или информационная рассылка.
В Django встроен функционал по отправке, однако ему всё же требуется почтовый сервер для отправки почты.
Доступные варианты отправки почты:
- Почта будет отправляться через почтовые сервисы, такие как Яндекс, Google или Mail.ru. В таком случае, адрес с которого отправляются письма, будет вида:
<название_сайта@gmail.com>
,<название_сайта@yandex.ru>
или любой другой почтовой службы. Плюс этого способа в том, что он бесплатен и прост в реализации. Минусом конечно же является то, что пользователь вашего сайта, будет получать письмо не от вашего домена, а от сервиса. - Приобрести почтовый сервис для домена. Такая услуга есть и у Яндекса и у Mail.ru и у большинства хостинг провайдеров. В таком случае, у вас будет почтовый адрес вида
<info@ваш_домен>
. Этот вариант куда привлекательнее, предыдущего. Пользователь будет видеть домен сайта в письме и это положительно скажется. Минусом же является то, что всё стоит денег. - Поднять собственный почтовый сервер на VPS. Этот способ позволит контролировать всё, что касается почты и ограничен лишь мощностью сервера и его дисковым пространством. Он достаточно сложен в исполнении, но при этом гарантирует независимость.
Третий вариант отложим на будущее, возможно я напишу, как развернуть свой почтовый сервер.
Остаются первые два пункта, в целом, в плане настроек Django они одинаковые.
Приступим.
Откроем файл settings.py
и в самом конце добавим следующий код:
# Настройка почты
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.yandex.ru'
EMAIL_PORT = 465
EMAIL_HOST_USER = ""
EMAIL_HOST_PASSWORD = ""
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
Разберём по порядку:
EMAIL_BACKEND
- тут мы указываем, какой модуль будет отвечать за отправку почты. Выбираем стандартный для работы по протоколуSMTP
.EMAIL_HOST
- тут мы указываем почтовый сервер. В примере выше, это сервер Яндекс почты, для Gmail этоsmtp.gmail.com
, для других сервисов сервер исходящей почты обычно прописан в справке.EMAIL_PORT
- порт для подключения к серверу. Обычно это 465, но может и отличаться, читайте справку к интересующему вас серверу.EMAIL_HOST_USER
иEMAIL_HOST_PASSWORD
- в этих полях определяется логин и пароль для подключения к почтовому серверу. Обратите внимание, в качестве логина, передаётся полностью адрес электронной почты!EMAIL_USE_TLS
иEMAIL_USE_SSL
- два параметра определяющих какой тип шифрования используется. Используемый тип, смотрите в справке к почтовому серверу. Обратите внимание, что только один из параметров может быть True, второй обязательно должен быть False!- И последние два параметра, определяют настройки адреса с которого будет исходить почта.
На этом настройка почты закончена.
Все статьи