目前,我使用
latest_mails = account.inbox.filter(datetime_received__gt=emails_since)
但似乎错过了收到的子文件夹中的电子邮件。
使用
打印所有文件夹for f in account.root.get_folders():
print(f)
给出类似
的内容Calendar (Kalender)
Contacts (Kontakte)
Contacts (Vorgeschlagene Kontakte)
Folder (AllItems)
Folder (Calendar Logging)
Folder (Common Views)
Folder (Conversation Action Settings)
Folder (Deferred Action)
Folder (Deletions)
Folder (Erinnerungen)
Folder (ExchangeSyncData)
Folder (Finder)
Folder (Infected Items)
Folder (Journal)
Folder (Location)
Folder (MailboxAssociations)
Folder (Notizen)
Folder (Recipient Cache)
Folder (Recoverable Items)
Folder (Schedule)
Folder (Shortcuts)
Folder (Spooler Queue)
Folder (System)
Folder (Versions)
Folder (Views)
Folder (WorkingSet)
Messages (Postausgang)
Messages (Posteingang)
Messages (foo)
Messages (bar)
Messages (something is)
Messages (here)
Messages (Gelöschte Elemente)
Messages (Gesendete Elemente)
Messages (Junk-E-Mail)
Messages (Meine Kontakte)
Messages (MyContactsExtended)
Messages (Nachverfolgte E-Mail-Verarbeitung)
Messages (Zugang)
Tasks (Aufgaben)
Tasks (Aufgabensuche)
所以我只想查看“Messages”文件夹,但是只关注它们。这是可能的(不使用account.root.get_folders()
)并循环结果(大约需要5分钟)
答案 0 :(得分:0)
您是正确的.filter()
仅适用于您调用它的文件夹,而不适用于子文件夹。我很确定EWS一次只支持搜索一个文件夹。
你应该能够做这样的事情来加快速度:
from exchangelib.folders import Messages
for f in account.folders[Message]:
for i in f.filter(datetime_received__gt=emails_since):
print(i)
但Folder
类型文件夹也可以包含Message
个项目,因此根据您的需要,您可能还需要访问这些项目。
f.supported_item_models
会告诉您给定文件夹可以包含哪些项目类型。