Я недавно зарегистрировал домен на 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.