Я пытаюсь использовать exchangelib для извлечения сообщений из учетной записи, которая совпадает с \ начинается с определенной темы. Это должно включать в себя сообщения из всех папок, а не только из папки «Входящие». Я прошел пару похожих вопросов здесь
Как я могу получить последние электронные письма из всех папок с помощью exchangelib?
, что привело меня к использованию FolderCollection. Однако мне не ясно, как создать и передать список всех папок параметру «папки».
В настоящее время я попробовал следующее:
conf = Configuration(server=ex_srv, credentials=cred)
acct = Account(primary_smtp_address=email,
config=conf,
autodiscover=False,
credentials=cred,
access_type=IMPERSONATION
)
from exchangelib.folders import Messages, FolderCollection
all_folder_list = acct.folders[Messages]
all_folder_collection = FolderCollection(account=acct, folders=all_folder_list)
all_folder_collection.filter(subject__startswith='test')
Кажется, я делаю глупую ошибку, но не могу ее найти.
Не мог бы кто-нибудь сообщить мне наиболее оптимальный способ достижения этого варианта использования?
Edit:
Я вижу ошибку
Traceback (most recent call last):
File "queryset.py", line 298, in __iter__
for val in self._format_items(items=self._query(), return_format=self.return_format):
File "queryset.py", line 375, in _item_yielder
for i in iterable:
File "account.py", line 580, in fetch
shape=ID_ONLY,
File "account.py", line 302, in _consume_item_service
is_empty, items = peek(items)
File "util.py", line 118, in peek
first = next(iterable)
File "folders.py", line 250, in find_items
for i in items:
File "services.py", line 432, in _paged_call
parsed_pages = [self._get_page(message) for message in response]
File "services.py", line 432, in <listcomp>
parsed_pages = [self._get_page(message) for message in response]
File "services.py", line 481, in _get_page
rootfolder = self._get_element_container(message=message, name='{%s}RootFolder' % MNS)
File "services.py", line 345, in _get_element_container
raise self._get_exception(code=response_code, text=msg_text, msg_xml=msg_xml)
exchangelib.errors.ErrorInvalidOperation: Shared folder search cannot be performed on multiple folders.