使用 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))