使用python exchangelib,如何获取邮件文件夹中邮件的总大小

时间:2017-06-15 13:22:58

标签: python exchangewebservices exchangelib

我可以使用for item in account.root.get_folders()if item.__class__ == exchangelib.folders.Messages:遍历所有邮件文件夹但是如何获取该文件夹中邮件使用的空间量?

我从在线阅读文件夹大小是EWS扩展属性类型,但我如何通过exchangelib获取? (仅供参考,属性为PropertyTag:0x0e08; PropertyType:Integer)

1 个答案:

答案 0 :(得分:0)

exchangelib尚不支持文件夹的扩展属性。 EWS确实会对可以轻松添加到size的项目公开exchangelib属性(随意打开问题:-)),这样就可以执行以下操作:

sum(some_folder.all().values_list('size', flat=True))

<强>更新 下面是使用它来获取所有电子邮件(类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))