Cat

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

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

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Сайт на Django proDream 02 Сентябрь 2023 Просмотров: 1017

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

 

В 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!
  • И последние два параметра, определяют настройки адреса с которого будет исходить почта.

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

Автор

    Нет комментариев

    Реклама