Подтвердить что ты не робот

Отправка электронной почты из Django через размещенный SMTP

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

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

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

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

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

Мои неработающие настройки в настройках Django.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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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.