Python IMAP4追加无声失败

时间:2019-03-15 08:10:01

标签: python-3.x imap imaplib

将消息追加到不存在的文件夹时,不会引发错误。很难想象这是故意的,我在做什么错了?

mailbox = imaplib.IMAP4_SSL(host="foo")
mailbox.login("foo", "bar")
try:
    mailbox.append("DOES_NOT_EXIST", '', imaplib.Time2Internaldate(time.time()), str(mail).encode("utf-8"))
except:
    # Expecting to fail here, but it doesn't
    # Message doesn't show up in any other folder either (expectedly)

1 个答案:

答案 0 :(得分:0)

正如comments中正确指出的那样,这实际上确实是预期的行为,documented也是如此。

  

每个命令都返回一个元组:(类型,[数据,...]),其中类型通常为“ OK”或“ NO”,数据要么是命令响应中的文本,要么是命令的强制结果。

因此,捕获错误的一种方法是:

status, data = mailbox.append("DOES_NOT_EXIST", '', imaplib.Time2Internaldate(time.time()), str(mail).encode("utf-8"))
if status == "NO":
    # Catch it here