python发送QQ邮件报错:ssl.SSLError: [SSL: WRONG_VERSION_NUMBER]和smtplib.SMTPAuthenticationError(已解决)

用python代码发送qq邮件时,采用了以下服务器设置,结果报错:

server = smtplib.SMTP_SSL('smtp.qq.com', 587)

报错信息为:

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

问题出在发送服务器代码“587”上,按照QQ邮箱对应指南,应为“465”:

server = smtplib.SMTP_SSL('smtp.qq.com', 465)

更正后出现新的报错,

smtplib.SMTPAuthenticationError: (535, b'Login Fail. Please enter your authorization code to login...

这里提示的是登录邮箱失败,并解释说:(利用代码登录QQ邮箱时,)应输入“授权码”(authorization code)(而不是常规邮箱密码)。问题即出在以下这行代码的“mail_password”:

server.login(from_address, mail_password)

至于“授权码”,在“QQ邮箱-设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”下,可以看到一贴生成QQ邮箱登录授权码的“温馨提示”,详见:

什么是授权码,它又是如何设置?

用“授权码”替换前述“mail_password”后,邮件即发送成功了。

2022.11.07

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值