2017-06-15 2 views
1

Je peux parcourir tout le dossier courrier en utilisant for item in account.root.get_folders() et if item.__class__ == exchangelib.folders.Messages: mais comment puis-je obtenir la quantité d'espace utilisée par les messages dans ce dossier?Utilisation de python exchangelib, comment obtenir la taille totale des messages dans le dossier courrier

J'ai lu en ligne que folderizesize est un type de propriété étendue EWS, mais comment l'obtenir via echangelib? (FYI, la propriété est PropertyTag: 0x0e08; PropertyType: Integer)

Répondre

0

exchangelib ne prend pas en charge les propriétés étendues sur les dossiers pour le moment. SAP n'expose un size attribut sur les éléments qui pourraient facilement être ajoutés à exchangelib (ne hésitez pas à ouvrir un :-) d'émission), qui vous permettra de faire quelque chose comme ceci:

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

Mise à jour: ici est un exemple de code de l'utiliser pour obtenir la taille du dossier de tous les dossiers de courrier électronique (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)) 
+0

Merci pour la réponse! –