2013-05-10 2 views
0

Некоторые факты:
Я работаю на localhost с devserver. У меня есть проект Django, где рассылка электронной почты работает отлично. Я создал новый проект Django, как 1.4.5, я копирую/вставляю настройки электронной почты из рабочего проекта (EMAIL_HOST, EMAIL_PORT ...) в settings.py на новый, я открываю оболочку с файлами manage.py и загрузите send_mail из django.core.mail в первый проект, который он может отправлять по электронной почте (я получаю их в своем почтовом клиенте), а во втором письмо не отправляется. Я пробовал с различными серверами, gmail и gandi. Я пробовал напрямую с smtplib в чистом коде Python и работает с теми же настройками. При отправке почты с первым проектом и с smtplib я вижу, что функция возвращает несколько секунд, чтобы вернуть приглашение в командной строке, но со вторым проектом немедленно возвращает приглашение, которое заставляет меня думать, что ничего не происходит. Конфигурация Django для отправки электронной почты

Итак, мой вопрос в том, что может быть неправильным в конфигурации моего нового проекта? Где искать? И если возможно, как отлаживать это? (Send_mail функция возвращает только 1, что количество писем я послал, есть способ, чтобы получить след назад или некоторое полезное сообщение об ошибке?)

+0

только один вопрос, используете ли вы DEBUG = true в своих настройках? – lalo

+0

@lalo в обоих проектах У меня есть DEBUG = True на моем localhost и DEBUG = False на сервере (поведение на сервере одинаково, электронная почта не работает для нового проекта). – Bastian

ответ

0

ответить на один из ваших вопросов:

>>> как отлаживать это?

Используйте pdb.set_trace() непосредственно перед вызовом того, что вы хотите отлаживать.

+0

Могли бы вы рассказать о том, как использовать pdb с функцией send_mail? – Bastian

+0

в моем опыте Я использую pdb, чтобы остановить выполнение кода и начать отладку. В моем вопросе нет выполнения кода, просто функция, которая не возвращает сообщение, которое может быть полезно для меня. Я не вижу, как pdb поможет мне здесь, как я его использую. Если вы знаете способ использовать его по-разному, что может быть актуальным, пожалуйста, поделитесь. – Bastian

+0

Привет, Бастиан, ничто не мешает вам использовать 'pdb' для шага * в * функцию отправки почты (это не имеет значения, если это библиотека django). Вы можете использовать 'step' в приглашении pdb для этого. –

0

Я знал, что это легко, это должно быть установка, и это действительно так. Я не там, где, что один приходит, может быть он появляется по умолчанию в новых Джанго проектов, я понятия не имею, но я имел

EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" 

в моем файле настроек, далеко от моих настроек электронной почты, и я никогда не вступал это я сам. Изменение его на SMTP или его комментирование заставляет Django отправлять электронную почту.

Смежные вопросы