如何通过 imap_tools 获取消息,不包括某些 UID?

时间:2021-01-17 15:13:21

标签: python python-3.x email imap

测试代码:

fetch_criteria = AND(seen=False), AND(NOT(uid=['61','88']))
for message in mailbox.fetch(fetch_criteria, mark_seen=False, charset='utf8', limit=10):
    print(message.uid)

服务器响应:

<块引用>

SEARCH 命令错误:错误 [b'无法解析命令']

请帮助我正确创建条件以排除 UID 66 和 88 的电子邮件

1 个答案:

答案 0 :(得分:1)

from imap_tools import AND, NOT
mailbox.fetch(AND(NOT(uid=['39', '40'])))
mailbox.fetch(NOT(AND(uid=['39', '40'])))

两者都适用于 [yandex、google、outlook、zimbra]。

可能是你的服务器做不到这一点。

mail.ru 上的错误示例:imap_tools.errors.MailboxSearchError:预期响应状态为“OK”,但收到“NO”。数据:[b'[CANNOT] 不支持的搜索条件:(UID 5,6)']

库作者。

相关问题