как проверить процесс регистрации приложения django на сервере разработки (без почты) - PullRequest
7 голосов
/ 17 сентября 2010

Я разрабатываю приложение django на моем MAC.Сервер разработки, поставляемый с django, великолепен.Однако я установил django-authopenid (объединяет приложение django-registration с openID), который состоит из 3 этапов: пользователь регистрируется, приложение отправляет подтверждение по электронной почте со ссылкой, а пользователь нажимает на ссылку для подтверждения регистрации.

Поскольку сервер разработки django не имеет почтового сервера, как я могу проверить эту часть процесса подтверждения по электронной почте?У меня появилась идея распечатать содержимое электронного письма на терминал, но я не могу перейти по ссылке.Есть предложения?

Ответы [ 4 ]

14 голосов
/ 17 сентября 2010

В Python есть отладочный почтовый сервер, доступный для этой цели.

Просто выполните эту команду, и у вас будет почтовый сервер, работающий на порту 1025

python -m smtpd -n -c DebuggingServer localhost:1025

После этого вам понадобитсяизменить настройки MAIL_HOST в Django, и вы можете проверить свою электронную почту локально:)

9 голосов
/ 19 сентября 2010

Если у вас есть учетная запись Gmail, вы можете использовать ее для отправки почты вашего разработчика.Добавьте в файл settings.py следующее:

# django-registration
ACCOUNT_ACTIVATION_DAYS = 7
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'YourEmail@gmail.com'
EMAIL_HOST_PASSWORD = 'YourGmailPassword'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = 'DevBox <YourEmail@gmail.com>'
LOGIN_REDIRECT_URL = '/'
5 голосов
/ 12 января 2011

Следующие дополнения к settings.py сделают так, чтобы все электронные письма, отправленные вашими приложениями django, записывались в <PROJECT_ROOT>/dev/email/ (или выбирали другой каталог):

# I put this at the top of all my settings.py files
import os
ROOT = os.path.dirname(os.path.abspath(__file__))

# Somewhere later
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = path(ROOT, "dev", "email")
0 голосов
/ 20 ноября 2011

Мне лично нравятся django-extensions (https://github.com/django-extensions/django-extensions)

. Он добавляет команду manage.py с именем 'mail_debug', которая делает то, что WoLpH рекомендует автоматически.

Она также поставляется с множеством других замечательных средств отладки.и инструменты для разработки, такие как runserver_plus, show_template, show_urls и т. д. (я действительно хочу, чтобы расширения django уже были добавлены в Django!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...