-
-
Save erm3nda/004fc48174baac79905052d678ae9d21 to your computer and use it in GitHub Desktop.
Very simple Python script to dump all emails in an IMAP folder to files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# | |
# Very simple Python script to dump all emails in an IMAP folder to files. | |
# This code is released into the public domain. | |
# | |
# RKI Nov 2013 | |
# | |
import sys | |
import imaplib | |
import getpass | |
IMAP_SERVER = 'imap.gmail.com' | |
EMAIL_ACCOUNT = "[email protected]" | |
EMAIL_FOLDER = "Top Secret/PRISM Documents" | |
OUTPUT_DIRECTORY = 'C:/src/tmp' | |
PASSWORD = getpass.getpass() | |
def process_mailbox(M): | |
""" | |
Dump all emails in the folder to files in output directory. | |
""" | |
rv, data = M.search(None, "ALL") | |
if rv != 'OK': | |
print "No messages found!" | |
return | |
for num in data[0].split(): | |
rv, data = M.fetch(num, '(RFC822)') | |
if rv != 'OK': | |
print "ERROR getting message", num | |
return | |
print "Writing message ", num | |
f = open('%s/%s.eml' %(OUTPUT_DIRECTORY, num), 'wb') | |
f.write(data[0][1]) | |
f.close() | |
def main(): | |
M = imaplib.IMAP4_SSL(IMAP_SERVER) | |
M.login(EMAIL_ACCOUNT, PASSWORD) | |
rv, data = M.select(EMAIL_FOLDER) | |
if rv == 'OK': | |
print "Processing mailbox: ", EMAIL_FOLDER | |
process_mailbox(M) | |
M.close() | |
else: | |
print "ERROR: Unable to open mailbox ", rv | |
M.logout() | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment