Настройки традиционно находятся в settings.py
. Однако, не всё так просто:
для того, чтобы отправить письмо с реального smtp-сервера, надо его поднять и настроить.
Если же не хочется держать свой SMTP-сервер, можете воспользоваться одним из известных публичных серверов. Например, yandex. Для этого нужно добавить свой домен в pdd.yandex.ru, либо же настроить mx-записи для своего домена.
Так, например, добавив свой домен на yandex, можете создать учётную mail запись. Также не забудьте сгенерировать пароль для приложений (стандартный пароль для входа в веб-интерфейс не подойдёт).
Далее нужно настроить Django:
DEFAULT_FROM_EMAIL = '1337@900913.ru'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.yandex.ru'
EMAIL_PORT = 587
EMAIL_HOST_USER = '1337@900913.ru'
EMAIL_HOST_PASSWORD = 'xxxxxxx'
E-mail, пользователь и пароль, само собой, свои.
Во время же разработки не получится отправлять письма с реального smtp сервера, можно воспользоваться "подменой". Так мы можем поднять mock-сервер smtp:
$ python -m smtpd -n -c DebuggingServer localhost:1025
И настройки для разработки будут следующими:
DEFAULT_FROM_EMAIL = '1337@900913.ru'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
Отправить же письмо можно стандартной командой send_mail
:
from django.conf import settings
from django.core.mail import send_mail
send_mail('Заголовок письма', 'Текст письма', settings.DEFAULT_FROM_EMAIL, ['адреса@получателей'])