Перейти к контенту

Django 12. Настройка отправки почты

Сайт на Django Иван Ашихмин 1443

В этом посте мы настроим Django на отправку почты.

Django 12. Настройка отправки почты
Сайт на Django Иван Ашихмин 1443

Для большинства сайтов важно иметь возможность отправлять письма пользователям, будь то письмо для сброса пароля или информационная рассылка. 

 

В Django встроен функционал по отправке, однако ему всё же требуется почтовый сервер для отправки почты.

 

Доступные варианты отправки почты:

  1. Почта будет отправляться через почтовые сервисы, такие как Яндекс, Google или Mail.ru. В таком случае, адрес с которого отправляются письма, будет вида: <название_сайта@gmail.com>, <название_сайта@yandex.ru> или любой другой почтовой службы. Плюс этого способа в том, что он бесплатен и прост в реализации. Минусом конечно же является то, что пользователь вашего сайта, будет получать письмо не от вашего домена, а от сервиса.
  2. Приобрести почтовый сервис для домена. Такая услуга есть и у Яндекса и у Mail.ru и у большинства хостинг провайдеров. В таком случае, у вас будет почтовый адрес вида <info@ваш_домен>. Этот вариант куда привлекательнее, предыдущего. Пользователь будет видеть домен сайта в письме и это положительно скажется. Минусом же является то, что всё стоит денег.
  3. Поднять собственный почтовый сервер на 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!
  • И последние два параметра, определяют настройки адреса с которого будет исходить почта.

На этом настройка почты закончена.

Аватар автора

Автор

Иван Ашихмин

Программист, фрилансер и автор гайдов. Занимаюсь разработкой ботов, сайтов и не только.

Войдите, чтобы оставить комментарий.

Комментариев пока нет.