文章内容

2022/5/26 16:24:28,作 者: 黄兵

如何修复:[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)

今天在使用 Python 发送邮件的时候出现了如下错误:

[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)

出现问题的原因:

使用 SSL 发送邮件,端口是 465 而不是 587,下面是错误的代码:

try:
    ssl_context = ssl.create_default_context()
    service = smtplib.SMTP_SSL('smtp.googlemail.com', 587)
    service.ehlo()
    service.starttls(context=ssl_context)
    service.ehlo()
    service.login(msg_from, pwd)
    service.sendmail(msg_from, msg_to, msg.as_string())  # 发送
    print('邮箱发送成功!')
except Exception as e:
    print('邮箱发送失败!详情:', e)

解决方案:

使用 TLS 的 SMTP 而不是 SMTP_SSL,下面是修改后的示例代码:

try:
    ssl_context = ssl.create_default_context()
    service = smtplib.SMTP('smtp.googlemail.com', 587)
    service.ehlo()
    service.starttls(context=ssl_context)
    service.ehlo()
    service.login(msg_from, pwd)
    service.sendmail(msg_from, msg_to, msg.as_string())  # 发送
    print('邮箱发送成功!')
except Exception as e:
    print('邮箱发送失败!详情:', e)


参考资料:

1、How to fix ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1056)?


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - 如何修复:[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1076)

分享到:

发表评论

评论列表