Python发送邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)

这篇具有很好参考价值的文章主要介绍了Python发送邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python发送邮件报SSLError

Background

做自动化发送邮件提醒功能时发现无法连接smtp.office365.com服务器,报ssl版本错误。

> `ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number
(_ssl.c:1129)`

Methods by Searching

这是一个 Python 中的 SSL 错误,通常表示请求的 SSL 版本不受支持。这通常是因为该服务器支持的 SSL 版本与客户端请求的版本不匹配。如果遇到此错误,可以通过以下几种方法解决:

  1. 更新到最新版本的 Python:最新版本的 Python 中的 SSL 库通常支持更多的 SSL 版本。
  2. 更改使用的 SSL 版本:如果该服务器支持的 SSL 版本已知,可以更改客户端代码以使用该版本。
  3. 忽略 SSL 验证:如果不关心 SSL 证书的有效性,可以忽略 SSL 验证。请注意,这不是一个安全的做法,但在开发和测试环境中可以使用。

Final Solution

查阅Microsoft邮件客户端配置信息:

IMAP 服务器名称outlook.office365.com
IMAP 端口 993
IMAP 加密方法TLS
POP 服务器名称outlook.office365.com
POP 端口 995
POP 加密方法 TLS
SMTP 服务器名称smtp.office365.com
SMTP 端口 587
SMTP 加密方法 STARTTLS文章来源地址https://www.toymoban.com/news/detail-784536.html

Original code:

s = smtplib.SMTP_SSL("smtp.office365.com", timeout=30, port=587)

Modified code:

s = smtplib.SMTP("smtp.office365.com", timeout=30, port=587)
s.starttls()

Simple Example

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

if __name__ == '__main__':
    msg_from = 'example@example.com'  # 发送方邮箱
    passwd = '*****'  # 就是上面的授权码


    to = ['example1@example1.com']  # 接受方邮箱

    # 设置邮件内容
    # MIMEMultipart类可以放任何内容
    msg = MIMEMultipart()
    conntent = "这是一封由python自动发送的邮件"
    # 把内容加进去
    msg.attach(MIMEText(conntent, 'plain', 'utf-8'))

    # 设置邮件主题
    msg['Subject'] = "这个是邮件主题"

    # 发送方信息
    msg['From'] = msg_from

    # 开始发送

    # 通过SSL方式发送,服务器地址和端口
    s = smtplib.SMTP("smtp.office365.com", timeout=30, port=587)
    # 登录邮箱
    s.starttls()
    s.login(msg_from, passwd)
    # 开始发送
    s.sendmail(msg_from, to, msg.as_string())
    s.close()
    print("邮件发送成功")

到了这里,关于Python发送邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1129)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java ssl加密发送邮件

    通过25端口发送邮件不安全,改为ssl加密方式发送邮件,比较常见的2中实现类发送邮件如下所示。 使用该实现类发送邮件,ssl加密使用端口号为465,借助Properties类设置ssl的各种配置。 网上资料较少,自己记录一下。 修改application.yml文件配置 至于能否都采用第二种方式来实

    2024年02月12日
    浏览(41)
  • Java发送邮件 启用SSL

    使用的maven依赖: 配置文件 mail.properties 如下: 在Foxmail的配置如下: 代码如下:

    2024年04月26日
    浏览(27)
  • java发送邮件报SSL安全异常解决

    2.运行程序,会有如下提示Enter certificate to add to trusted keystore or \\\'q\\\' to quit: [1] 按1再按回车 3.然后在你的项目路径下生成了一个jssecacerts文件 4.复制文件的路径,在发送邮件代码之前设置安全证书的位置,我的如下: 5.然后运行发送邮件代码就可以正常发送了!

    2024年02月13日
    浏览(35)
  • c++实现smtp发送邮件,支持ssl的465端口发送,支持附件、一次发送多人、抄送等

    c++实现smtp发送邮件,支持ssl的465端口发送,支持附件、一次发送多人、抄送等。 这里只使用了openssl库(用来支持ssl的465端口),其他部分是原生c++,支持在win/linux运行。 网上很多都是原始的支持25端口,明文发送,这里介绍一下ssl思路 使用sockect编程和ssl,使用SMTP协议。 使

    2024年02月08日
    浏览(84)
  • java SMTP邮件发送,修复SSL下465端口Could not connect to SMTP

    起因:开发邮件发送系统时,使用25端口能够正常发送邮件,启用SSL使用465端口时,发送邮件报Could not connect to SMTP host: smtp.qiye.aliyun.com, port: 465的错误。 由于25端口可以正常发送邮件,所以可以保证账号和网络是通的,那么可能就出在465出站权限或者服务器环境问题。 经运维

    2024年02月02日
    浏览(36)
  • 解决pip安装报错:(Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:1129)‘))

    先说原因,这极有可能是因为电脑开着代理引起的,发生了SSL证书验证失败的情况,导致无法成功连接pip安装包。最直接的方法就是关闭代理,再运行就没问题了。 除此之外,也可以考虑不用关闭代理的情况,只需在安装命令后面添加代理服务器的主机和端口号即可。以cl

    2024年02月15日
    浏览(48)
  • windows: pip install 报错SSLError Can‘t connect to HTTPS URL because the SSL module is not available

    windows anaconda pip清华源 通过pip install 安装不成功,会报错(Caused by SSLError(\\\"Can\\\'t connect to HTTPS URL because the SSL module is not available.\\\")) 错误详情如下: 具体是什么错误什么原因导致,不去深究了。或许是源本身有问题?下面直接提供解决方法,通过更换源解决了该错误 加上--truste

    2024年02月15日
    浏览(35)
  • python 关于Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:1131)‘)

    报错如下:  requests.exceptions.SSLError: HTTPSConnectionPool(host=\\\'www.qcc.com\\\', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLEOFError(8, \\\'EOF occurred in violation of protocol (_ssl.c:1131)\\\'))) 有两种解决方法: 降低urllib3的版本 = 1.25.11 pip install urllib3==1.25.11 https:// http:// daili 改为: 两种方法选一种即

    2024年02月11日
    浏览(29)
  • ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 错误处理

    从python3.9.5升级到3.11.1 原来用poplib收取邮件的脚本运行失败: 查看python升级变化的文档,提示在3.10版有涉及: 应该是ssl相关的版本变化引起。 为使新版的SSL与原服务器的适配,增加设置: 运行发现已经能进一步了,但是又报错误: 此为自签证书错误,借处理爬虫时,忽略

    2024年02月12日
    浏览(35)
  • Python单接口请求和接口自动化框架请求解决Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAIL

    项目实践总结2种处理SSLError的办法,下面就详细说明一下 接口请求示例如下: 导入urllib3,导包下面写上urllib3.disable_warnings(),在请求中加上verify=False。 data: request_data: method: GET url: - https://xxx/open/pick/codeId?signMode=1clientId=af901bbe8b9f0f3eebc3db46aba8d209signTimestamp=signTimesignData=signData bo

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包