Программы
Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Настройки традиционно находятся в 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, ['адреса@получателей'])
Также может быть вам интересно:

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Читать »

Как сделать свою middleware в Django (с примерами)

Middleware или "промежуточное программное обеспечение" - элегантный способ установить общие правила обработки запросов и ответов приложения. Давайте напишем парочку middleware, чтобы понять, как они работают.

Читать »
Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

Во время работы программы часто нужно сохранять некоторые важные записи о процессе выполнения команды. В Python есть довольно мощный модуль для работы с логами - давайте разберёмся с тем, как его использовать.

Фото Шаблон разработки ПО — Model View Controller (MVC)

Шаблон разработки ПО — Model View Controller (MVC)

MVC - один из самых распространённых архитектурных шаблонов разработки. Часто используется в различных фреймворках. В том числе и в Django.

Фото Маленькая книга о Go (golang)

Маленькая книга о Go (golang)

Маленькая книга о Go распространяется под лицензией Attribution-NonCommercial-ShareAlike 4.0 International license. Вы не должны платить за эту книгу.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит - надо уметь создавать пользователей, либо предоставлять возможность регистрации Django пользователей.

Фото Как на Bash посчитать число строк в проекте (директории)

Как на Bash посчитать число строк в проекте (директории)

Ниже будет представлен однострочник, решающий данную задачу на Bash + пошаговое описание его работы.