Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. def find_pst_folder(mapi, pst_filepath):
  2. dispatch = win32com.client.gencache.EnsureDispatch
  3. for store in dispatch(mapi.Stores):
  4. if store.IsDataFileStore and store.FilePath == pst_filepath:
  5. return store.GetRootFolder()
  6.  
  7.  
  8. def get_pst_folder(pst_filepath):
  9. """Returns the PST archive folder, if it doesn't exist it creates it"""
  10. outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
  11. const = win32com.client.constants
  12. # get pst folder
  13. pst_folder = find_pst_folder(outlook, pst_filepath)
  14.  
  15. # if not found
  16. if not pst_folder:
  17. outlook.AddStoreEx(pst_filepath, const.olStoreDefault)
  18. pst_folder = find_pst_folder(outlook, pst_filepath)
  19. # add archive folder
  20. pst_folder.Folders.Add('Archive')
  21. # set the account name
  22. path_list = str.split(pst_filepath, '\\')
  23. displayname = path_list[len(path_list)-1].replace('.pst', '')
  24. pst_folder.Name = displayname
  25. if not pst_folder:
  26. raise RuntimeError("Can't find PST folder at %s" % pst_filepath)
  27.  
  28. # return archive folder
  29. # archive_folder = pst_folder.GetDefaultFolder.Folders('Archive')
  30. return pst_folder
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement