Использование SMTP_SSL на bluehost.com приводит к ConnectionResetError: [WinError 10054] Существующее соединение было принудительно закрыто удаленным хостом - PullRequest
1 голос
/ 27 апреля 2019

Я недавно зарегистрировал домен на bluehost.com.На данный момент я хочу отправить простые письма о «сбросе пароля».Использование «Стандартных (без SSL / TLS) настроек» работает нормально.

Однако в документации bluehost предлагается использовать Настройки SSL / TLS , поэтому я хочупопробуйте:

Username:           Your email address: john@example.com
Password:           The password for that email account. 
Outgoing Server:    mail.example.com
Outgoing Port:      465 (SMTP)

Вот мой код (анонимные параметры):

import smtplib, ssl, os

# Params
port = 465 
smtp_server = "mail.mydomain.com"
sender_email = "sender@mydomain.com"
receiver_email = "receiver@gmail.com"
password = os.environ.get("SMTP_PASSWORD")

# As documented in https://docs.python.org/3/library/smtplib.html
""" Deprecated since version 3.6: keyfile and certfile are deprecated 
in favor of context. Please use ssl.SSLContext.load_cert_chain() instead, 
or let ssl.create_default_context() select the system’s trusted
CA certificates for you. """
context = ssl.create_default_context()

# Create the connection and authenticate
with smtplib.SMTP_SSL(smtp_server, port, context=context) as s:
    s.set_debuglevel(1)
    s.login(sender_email, password)
    s.quit()

Код не срабатывает:

...Python37-32\lib\ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

Я связался с bluehost techподдержка, которая уточнила, что сертификаты отсутствуют или что-либо.Их ответ был неудовлетворительным в том смысле, что они просто сказали: «SSL иногда не работает. Сбросьте свой пароль и повторите попытку» (последний не сработал).

Надеюсь, я просто пропускаюошибка в моем коде.Может ли кто-нибудь указать мне правильное направление?Я исчерпал Google.

...