将消息追加到不存在的文件夹时,不会引发错误。很难想象这是故意的,我在做什么错了?
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)
答案 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