Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sqlite3
- import win32com.client
- folder_filter = {"Inbox", "2012", "2013", "2014"}
- def enumerate(node):
- """Enumerate all items in a collection."""
- folder = node.GetFirst()
- while folder:
- yield folder
- folder = node.GetNext()
- def all_folders():
- """Generator function iterating over all folders with depth 2."""
- outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
- # Start at inbox and go up two folders
- folders = outlook.GetDefaultFolder(6).Parent.Parent.Folders
- for folder in enumerate(folders):
- for sub_folder in enumerate(folder.Folders):
- yield sub_folder
- folders = [f for f in all_folders() if str(f) in folder_filter]
- conn = sqlite3.connect('mails.db')
- c = conn.cursor()
- c.execute("CREATE TABLE mails (received text, sent text, body text)")
- for folder in folders:
- print("Processing folder:", folder)
- for message in enumerate(folder.Items):
- received = message.ReceivedTime
- sent = message.SentOn
- body = message.Body
- c.execute("INSERT INTO mails VALUES (?, ?, ?)",
- (str(received), str(sent), body))
- conn.commit()
- conn.close()
Add Comment
Please, Sign In to add comment