python - Python imaplib fetch 返回“无法解析命令”错误
问题描述
我一直在寻找这个错误几个小时,但找不到任何可以解决我问题的东西。在执行此操作时,我正在关注有关此主题的文章。我之前什至没有收到这个错误。我从获取部分了解到的是它正在将消息与我的盒子分开。尝试了不同的方法,但似乎没有什么对我有用。编辑:我认为我的问题有点错误。我实际上需要知道我做错了什么或者我应该改变哪一部分。
dic_path = "Mails\\"
username = "username@gmail.com"
password = "password"
imap = imaplib.IMAP4_SSL("imap.gmail.com")
imap.login(username, password)
status, messages = imap.select()
N = 10
messages = int(messages[0])
for i in range(messages, messages-N, -1):
res, msg = imap.fetch(str(i), "(RFC822)")
for response in msg:
if isinstance(response, tuple):
# parse a bytes email into a message object
msg = email.message_from_bytes(response[1])
# decode the email subject
subject = decode_header(msg["Subject"])[0][0]
错误;
Traceback (most recent call last):
File "C:\Users\Teknoloji\Desktop\Projects\Python Projects\Phyton\DiscordBot\DiscordBot2\Main.py", line 28, in <module>
res, msg = imap.fetch(str(i), "(RFC822)")
File "C:\Users\Teknoloji\AppData\Local\Programs\Python\Python38-32\lib\imaplib.py", line 539, in fetch
typ, dat = self._simple_command(name, message_set, message_parts)
File "C:\Users\Teknoloji\AppData\Local\Programs\Python\Python38-32\lib\imaplib.py", line 1205, in _simple_command
return self._command_complete(name, self._command(name, *args))
File "C:\Users\Teknoloji\AppData\Local\Programs\Python\Python38-32\lib\imaplib.py", line 1030, in _command_complete
raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: FETCH command error: BAD [b'Could not parse command']
解决方案
您的 pastebin 表明您的邮箱中有 8 封邮件,但您正在尝试获取最近的 10 封邮件。
46:51.53 < b'* 8 EXISTS'
你最终倒数到零,这是一个无效的消息编号:
46:52.45 > b'MAAK11 FETCH 0 (RFC822)'
46:52.53 < b'MAAK11 BAD Could not parse command'
然后服务器抛出一个错误。
因此,请确保您永远不会低于第一条消息:
for i in range(messages, max(messages-N, 1), -1):
推荐阅读
- docker - 安装了 repo 的 docker-ce 未显示在 `yum list available` 中
- c# - 新手:创建 enum.FirstOrDefault(),得到“无法隐式转换类型”
- python-3.x - 我是 python 新手,我正在尝试构建一个简单的井字游戏。当我从用户那里获取输入时,它会进入无限循环
- javascript - 使用 sequelize 从两个模型表中获取数据
- c++ - 如何从键盘调用枚举器?
- maven - spring boot Maven打包时如何修改配置文件名,如config.xml xml。重新配置。XML
- python - Easy Leetcode:BST 深度优先搜索存在堆栈溢出错误
- node.js - 在 Linux 终端中看不到 console.log()
- html - 右侧打开的 CSS 嵌套下拉菜单
- typescript - 如何在函数上使用泛型类型,该类型必须满足某些条件?