2013-07-04 5 views
13

Как вы отправляете письмо с Django с помощью зарегистрированной учетной записи SMTP (особенно на Namecheap)?Отправка электронной почты с Django через размещенный SMTP

Я думал, что это будет прямолинейно, и просто вопрос заполнения standard EMAIL_* fields в моих настройках.

Однако после ввода своих учетных данных в как моего settings.py и Thunderbird, Thunderbird может загружать и отправлять электронную почту, но Джанго раз с ошибкой «SMTPServerDisconnected: Соединение неожиданно закрыт» при попытке сделать то же самое.

Мои рабочие параметры в Thunderbird для моего сервера исходящей почты (SMTP):

Server Name: oxmail.registrar-servers.com 
Port: 465 
User Name: [email protected] 
Authentication method: Normal password 
Connection Security: SSL/TLS 

Мои нетрудовые настройки в моем Django settings.py:

EMAIL_HOST = 'oxmail.registrar-servers.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'mypassword' 
EMAIL_PORT = 465 
EMAIL_USE_TLS = True 
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 

Являются ли эти настройки идентичны? Что я делаю не так? Почему одна работает, пока другая не работает?

+0

У вас есть сообщение об ошибке? – Jingo

ответ

24

Оказывается, проблема в том, что основной сервер SMTP по умолчанию в Django не поддерживает SSL, и мой SMTP-хост требовал его (а не только TLS). К счастью, я нашел dirt-simple SSL-сервер, добавив EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend' в мои настройки.py и все просто сработало.

+1

Могу ли я дать вам больше очков репутации? Это просто спасло мое здравомыслие, пытаясь подключиться к SMTP-серверу namecheap. – bchhun

+0

более года спустя все еще работает - я только что использовал его с Django 1.6.5 –

+0

работает как шарм – blurrcat

3

настройки ниже:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'mail.yourdomain.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'password' 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 

работал для меня. Моя версия django, с которой я тестировал, - 1.8.8.

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