Django send mail работает на localhost, но не на сервере
Недавно я начал изучать Django и написал код для отправки электронной почты на странице контактов, и он отлично работает на моем localhost, но когда я загрузил его на сервер, он выдал эту ошибку:
SMTPServerDisconnected at /contact
Connection unexpectedly closed
вот мой код settings.py:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'my@gmail.com'
EMAIL_HOST_PASSWORD = 'app passwords'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
и вот мой views.py
send_mail('title', 'message', userEmail, [settings.EMAIL_HOST_USER], fail_silently=False,)
Я разговаривал с группой поддержки моего хост-сервера, чтобы проверить порты, но они сказали, что все в порядке, поэтому я не знаю, упускаю ли я что-то или нет.
Вот несколько предложений по диагностике проблемы:
Порт 587 может быть заблокирован или TLS не работает. Вы также можете проверить SSL.
Проверьте порт
465
вместо587
, как с TLS, так и с SSL.Для проверки блокировки используйте такие инструменты, как
telnet
,netcat
илиopenssl
, чтобы проверить доступность порта.
Настройте TLS или SSL в файле settings.py с помощью переменных EMAIL_USE_SSL=True
или EMAIL_USE_TLS=True
.