Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def find_pst_folder(mapi, pst_filepath):
- dispatch = win32com.client.gencache.EnsureDispatch
- for store in dispatch(mapi.Stores):
- if store.IsDataFileStore and store.FilePath == pst_filepath:
- return store.GetRootFolder()
- def get_pst_folder(pst_filepath):
- """Returns the PST archive folder, if it doesn't exist it creates it"""
- outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
- const = win32com.client.constants
- # get pst folder
- pst_folder = find_pst_folder(outlook, pst_filepath)
- # if not found
- if not pst_folder:
- outlook.AddStoreEx(pst_filepath, const.olStoreDefault)
- pst_folder = find_pst_folder(outlook, pst_filepath)
- # add archive folder
- pst_folder.Folders.Add('Archive')
- # set the account name
- path_list = str.split(pst_filepath, '\\')
- displayname = path_list[len(path_list)-1].replace('.pst', '')
- pst_folder.Name = displayname
- if not pst_folder:
- raise RuntimeError("Can't find PST folder at %s" % pst_filepath)
- # return archive folder
- # archive_folder = pst_folder.GetDefaultFolder.Folders('Archive')
- return pst_folder
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement