Guest User

Untitled

a guest
Jul 16th, 2018
977
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. import sqlite3
  2. import win32com.client
  3.  
  4. folder_filter = {"Inbox", "2012", "2013", "2014"}
  5.  
  6. def enumerate(node):
  7. """Enumerate all items in a collection."""
  8. folder = node.GetFirst()
  9. while folder:
  10. yield folder
  11. folder = node.GetNext()
  12.  
  13. def all_folders():
  14. """Generator function iterating over all folders with depth 2."""
  15. outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
  16. # Start at inbox and go up two folders
  17. folders = outlook.GetDefaultFolder(6).Parent.Parent.Folders
  18.  
  19. for folder in enumerate(folders):
  20. for sub_folder in enumerate(folder.Folders):
  21. yield sub_folder
  22.  
  23. folders = [f for f in all_folders() if str(f) in folder_filter]
  24.  
  25. conn = sqlite3.connect('mails.db')
  26. c = conn.cursor()
  27. c.execute("CREATE TABLE mails (received text, sent text, body text)")
  28.  
  29. for folder in folders:
  30. print("Processing folder:", folder)
  31. for message in enumerate(folder.Items):
  32. received = message.ReceivedTime
  33. sent = message.SentOn
  34. body = message.Body
  35. c.execute("INSERT INTO mails VALUES (?, ?, ?)",
  36. (str(received), str(sent), body))
  37.  
  38. conn.commit()
  39. conn.close()
Add Comment
Please, Sign In to add comment