Python问题2:poplib.error_proto: b‘-ERR pop3 not supported‘

解决Python报错:poplib.error_proto: b’-ERR pop3 not supported’



  在自学Python,使用 POP3 协议登录E-mail 服务器收取邮件部分内容时,使用poplib模块中的方法pass_()向POP3服务器发送密码时发现报错poplib.error_proto: b’-ERR pop3 not supported’,尝试网上的方法,把自己的解决过程分享一下。


一、出现的问题

  程序的主要功能是:用POP3对象的方法连接POP3服务器井获取邮箱中的邮件总数。在程序中获取最近的两封邮件的邮件头,然后传递给函数decode_email_content()进行分析,并返回邮件的主题和发件人的信息。部分程序如下:
  (完整程序在文章“自学Python 64 使用Python语言收发电子邮件https://blog.csdn.net/weixin_46066007/article/details/127096494?spm=1001.2014.3001.5501”中)

if __name__== "__main__":
    pp=POP3("pop3.sina.com")      #实例化邮件服务器类
    pp.user('**********@sina.com')        #传入邮箱地址(可更改)
    pp.pass_('***********')           #密码设置(邮箱的密码)
    total,totalnum = pp.stat()  #邮件的数量和邮件总的字节数
    print (total,totalnum)      #打印显示统计信息
    for i in range(total-2,total):      #遍历获取最近的两封邮件
        hinfo,msgs,octet=pp.top(i+1,0)  #得到指定邮件中的第一行内容(从0开始)
        b=b''           #返回bytes类型的内容
        for msg in msgs:        #遍历msg
            b += msg+b'\n'
        items = decode_email_content(b,['subject','from'])   #遍历函数返回邮件主题
        print (items['subject'],'\nFrom:',items['from'])  #调用函数返回收件人的信息
    pp.quit()       #关闭连接

  运行程序后。出现报错:
在这里插入图片描述
  在反复检查程序无误后,在网上查阅资料,发现是需要开启新浪邮箱的POP3服务,并且密码是开启时拿到的授权码,而非登录邮箱时自己设置的密码。

二、解决过程

  第一步,登录新浪邮箱,点击网页右上方的设置:
在这里插入图片描述

  第二步,点击左侧“客户端pop/imap/smtp”,在此页面将授权码状态开启。
在这里插入图片描述
  第三步,开启后会提示通过手机发送验证信息,手机发送信息验证完毕后,点击确定会生成授权码
在这里插入图片描述
在这里插入图片描述
  第四步将上个图片中得到的16位授权码写入原来的输入密码的方法pass_()中,再次运行程序,就可以得到想要的结果——获取最近的两封邮件的主题和发件人的信息。

在这里插入图片描述

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值