poplib.POP3_SS 登录报错poplib.error_proto: -ERR EOF

代码如下:

    def mail_login(self):
        email_account = "****"
        # 授权码
        password = "****"
        pop3_server = "pop.163.com"
        try:
            # 连接到POP3服务器:
            self.server = poplib.POP3_SSL(pop3_server)
            self.server.set_debuglevel(1)
            self.server.user(email_account)
            self.server.pass_(password)
        except Exception as e:
            log_print(e)
            log_print("Invalid credentials")
        else:
            log_print(self.server.getwelcome().decode("utf-8"))
            assert self.server is not None
            self.server.quit()

 

出现如下报错:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "/root/app/***.py", line 227, in mail_monitor_func
    raise e
  File "/root/app/***.py", line 222, in mail_monitor_func
    alarm.entrance(url)
  File "/root/app/***.py", line 54, in entrance
    self.mail_login()
  File "/root/app/***.py", line 34, in mail_login
    self.server.pass_(password)
  File "/usr/local/lib/python3.7/poplib.py", line 213, in pass_
    return self._shortcmd('PASS %s' % pswd)
  File "/usr/local/lib/python3.7/poplib.py", line 176, in _shortcmd
    return self._getresp()
  File "/usr/local/lib/python3.7/poplib.py", line 149, in _getresp
    resp, o = self._getline()
  File "/usr/local/lib/python3.7/poplib.py", line 133, in _getline
    if not line: raise error_proto('-ERR EOF')
poplib.error_proto: -ERR EOF

根据报错信息,对登录加try--except,系统进入异常“Invalid credentials”

问题原因:self.server.pass_(password)提供的是标准的邮箱密码

解决方案:self.server.pass_(password)要给邮箱授权码,邮箱设置中可设置pop3的授权码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值