IMAP 搜索查询中有多少叠瓦

问题描述

我正在尝试使用裸 python imaplib 进行复杂的 IMAP 搜索查询

查询非常简单,我有一个电子邮件列表,我正在尝试使用这些地址查询所有邮件

一个简单的查询可能如下所示:

[
  ['OR',['FROM','email1@domain.com'],['OR','email2@domain.com'],'email3@domain.com']
]]]

但是当我开始使用大量地址(超过 5 个)进行此类查询时,我得到:

SEARCH command error: BAD [b'Command Argument Error. 12']

IMAP 协议有这样的限制吗?也许是因为查询的复杂性?或者是最大叠瓦层?

我的参考文献或:

解决方法

IMAP 查询限制可能在您的电子邮件服务器端。 这独立于 imaplib。

您可以尝试使用我的库中的 IMAP 查询构建器:https://github.com/ikvk/imap_tools

它有助于更​​轻松地构建此类查询。

例如,我已成功尝试在(YANDEX、ZIMBRA、OUTLOOK、GOOGLE)执行此操作:

from imap_tools import MailBox,OR
with MailBox('imap.mail.com').login('test@mail.com','pwd') as mailbox:
    for msg in mailbox.fetch(OR(from_=['1@a','2@a','3@a','4@a','5@a','6@a','hello@ya.ru'])):
        print(msg.date)