如何使用Exchangelib python获取邮件的父文件夹名称

2024-04-25 23:05:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Item对象,它是通过在python 3.7中使用exchangelib对帐户进行过滤而获得的。它是一个电子邮件对象。我需要找到此项目的父文件夹名称。我特别需要文件夹的名称字段(用于跟踪特定电子邮件在邮箱中的移动位置)

我可以在item对象中看到一个字段parent\u folder\u id,它返回我认为有效的文件夹id。这也适用于生产邮箱,其中account.root.get_folder(folder_id=idObj)由于无法更改的Exchange设置而超时。几乎所有缓存的请求都会因超时而失败

account=Account(...)
mailItems=account.inbox.all().filter(subject="foo")
print([i.parent_folder_id.id for i in mailItems])

这将打印文件夹ID的列表。我需要这些文件夹的名称。不清楚如何进行。任何帮助都将不胜感激


Tags: 项目对象文件夹名称id电子邮件帐户account
1条回答
网友
1楼 · 发布于 2024-04-25 23:05:48

由于您只搜索account.inbox,而不搜索其子文件夹,parent_folder_id将始终指向account.inbox

目前还没有一个很好的API用于按ID等查找文件夹。目前最好的解决方案是使用文件夹查询集:

from exchangelib.folders import SingleFolderQuerySet

f = SingleFolderQuerySet(
    account=account,
    folder=account.root
).get(id=i.parent_folder_id.id)

相关问题 更多 >