使用 python exchangelib,如何获取邮件文件夹中邮件的总大小
Using python exchangelib, how to get total size of messages in mail folder
我可以使用 for item in account.root.get_folders()
和 if item.__class__ == exchangelib.folders.Messages:
遍历所有邮件文件夹,但是我怎样才能获得该文件夹中邮件使用的 space 数量?
我在网上看到 foldersize 是 EWS 扩展 属性 类型,但我如何通过 exchangelib 获得它?
(仅供参考,属性 是 PropertyTag:0x0e08;PropertyType:整数)
exchangelib
尚不支持文件夹的扩展属性。 EWS 确实在可以轻松添加到 exchangelib
的项目上公开了一个 size
属性(随意打开一个问题:-)),这将允许你做这样的事情:
sum(some_folder.all().values_list('size', flat=True))
更新:
以下是使用它获取所有电子邮件 (class folder.Message) 文件夹的文件夹大小的示例代码:
for folder in account.root.find_folders():
if folder.__class__ != exchangelib.folders.Messages:
continue
fsum = sum(folder.all().values_list('size', flat=True))
print('{0:>40s} {1:12,d}'.format(folder.name.encode('utf-8'), fsum))
我可以使用 for item in account.root.get_folders()
和 if item.__class__ == exchangelib.folders.Messages:
遍历所有邮件文件夹,但是我怎样才能获得该文件夹中邮件使用的 space 数量?
我在网上看到 foldersize 是 EWS 扩展 属性 类型,但我如何通过 exchangelib 获得它? (仅供参考,属性 是 PropertyTag:0x0e08;PropertyType:整数)
exchangelib
尚不支持文件夹的扩展属性。 EWS 确实在可以轻松添加到 exchangelib
的项目上公开了一个 size
属性(随意打开一个问题:-)),这将允许你做这样的事情:
sum(some_folder.all().values_list('size', flat=True))
更新: 以下是使用它获取所有电子邮件 (class folder.Message) 文件夹的文件夹大小的示例代码:
for folder in account.root.find_folders():
if folder.__class__ != exchangelib.folders.Messages:
continue
fsum = sum(folder.all().values_list('size', flat=True))
print('{0:>40s} {1:12,d}'.format(folder.name.encode('utf-8'), fsum))