python-3.x - IMAP fetch() 返回命令错误 : BAD [b' Command Argument Error. 12']

标签 python-3.x imap

我无法在线查找示例/疑难解答提示,并且不太确定我是否正确解释了文档。如有任何帮助,我们将不胜感激。

我正在连接到电子邮件服务器,并希望阅读电子邮件主题和正文。我首先像这样建立连接:

import imaplib
c = imaplib.IMAP4_SSL(hostname, port)
c.login(username, password)

foldername = 'INBOX/SSR'
c.select(str.encode(foldername), readonly = True)

today = datetime.date.today().strftime('%d-%b-%Y')
searchcriteria = '(SENTON '{}')'.format(today)
typ, msg_ids = c.search(None, searchcriteria)
msg_ids = [s.decode('ascii') for s in msg_ids]

对于 msg_ids 中的 idnumber: print(c.fetch(idnumber, "(BODY.PEEK[HEADER])"))

代码、工作和输出看起来都符合预期,直到最后一行,在这一点上,我得到了

imaplib.error:FETCH 命令错误:BAD [b' 命令参数错误。 12']

我的思路和后续测试检查了以下可能的问题:

  1. 字节与字符串。我将输入转换回字节,但错误保持不变
  2. 语法不正确:我尝试了其他命令,例如 BODY、SUBJECT 和 ENVELOPE,但仍然收到相同的消息。

我不确定如何解释错误,也不知道从哪里开始。引用 https://www.rfc-editor.org/rfc/rfc3501.html从 pp. 102+ 开始,我注意到这些值的标记不同,但不明白我的实现有什么问题。我应该如何解释错误?我的语法有什么问题?

附言如果我错了请纠正我,但 c.search 不应该更改我的目录,是吗?例如,通过选择文件夹名称,我“导航”到所选文件夹,但仅搜索仅返回值,不应更改我的位置?

最佳答案

我在尝试列出或选择新邮箱时遇到了同样的问题 - BAD [b' 命令参数错误。 12'],在我的例子中,它不适用于“已发件箱”,但它适用于“发件箱”,所以空格符号是重点。

所以它可以与 c.select('"{}"'.format("Sent Box")...

希望这些信息能对您有所帮助。

关于python-3.x - IMAP fetch() 返回命令错误 : BAD [b' Command Argument Error. 12'],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981650/

相关文章:

ruby-on-rails - 通过 IMAP 在 Rails 中获取电子邮件

python-3.x - 在 Debian 上的 virtualenv 中 Pip 安装 scikit-learn 失败 - Raspberry PI - 无法构建 scikit-learn

python - 如何将namedtuple的字典或只是namedTuple发送到客户端(套接字)?

ssl - Mule ESB 3.3 - 接收 IMAPS 邮件 (Gmail)

java - Android JavaMail IMAP 10 秒后超时

c# - MailKit:当 Gmail 设置“对话” View 时,消息不会从收件箱中删除

python - 使用 f 字符串作为模板

python - 如何将以下 Python 字符串拆分为字符串列表?

python - 如何创建多列索引数据框以及如何为每组值绘制图表

c# - IMAP 搜索“字符