IMAP Backup Tool http://github.com/mleonhard/imapbackup http://tamale.net/imapbackup/ This program incrementally backs up IMAP folders to local mbox files. New messages are appended to the folder's mbox file. = Features = * Downloads all IMAP folders * Stores messages in mbox, mbox.gz, or mbox.bz2 * Each folder downloads to its own mbox file, eg. Inbox.Drafts.mbox * Downloads only new messages, appends them to the mbox file * IMAP4 SSL, supporting client and server certificates * Accesses IMAP account in read-only mode. Does not affect message 'seen' status. = Usage = Usage: imapbackup [OPTIONS] -s HOST -u USERNAME [-p PASSWORD] -a --append-to-mboxes Append new messages to mbox files. (default) -y --yes-overwrite-mboxes Overwite existing mbox files instead of appending. -n --compress=none Use one plain mbox file for each folder. (default) -z --compress=gzip Use mbox.gz files. Appending may be very slow. -b --compress=bzip2 Use mbox.bz2 files. Appending not supported: use -y. -f --=folder Specifify which folders use. Comma separated list. -e --ssl Use SSL. Port defaults to 993. -k KEY --key=KEY PEM private key file for SSL. Specify cert, too. -c CERT --cert=CERT PEM certificate chain for SSL. Specify key, too. Python's SSL module doesn't check the cert chain. -s HOST --server=HOST Address of server, port optional, eg. mail.com:143 -u USER --user=USER Username to log into server -p PASS --pass=PASS Prompts for password if not specified. NOTE: mbox files are created in the current working directory. = Example = $ python imapbackup.py -s shevek.tamale.net -u michael -e -f INBOX Password: Connecting to 'shevek.tamale.net' TCP port 993, SSL Logging in as 'michael' Finding Folders: 67 folders Folder INBOX: 1231 messages File INBOX.mbox / WARNING: Message #117 in INBOX.mbox has a malformed Message-Id header. File INBOX.mbox - WARNING: Message #269 in INBOX.mbox has a malformed Message-Id header. File INBOX.mbox - WARNING: Message #498 in INBOX.mbox has a malformed Message-Id header. File INBOX.mbox / WARNING: Message #609 in INBOX.mbox has a malformed Message-Id header. File INBOX.mbox | WARNING: Message #976 in INBOX.mbox has a malformed Message-Id header. File INBOX.mbox - WARNING: Message #1042 in INBOX.mbox has a malformed Message-Id header. File INBOX.mbox: 1230 messages Downloading 1 new messages to INBOX.mbox: 1.89 KB total, 1.89 KB for largest message Disconnecting $ = Compatibility = Python 2.5. May work on Python 2.4 with minor tweaks. = Changes = 2009-12-12 v1.4c * Use hashlib module instead of deprecated sha module - Ronan Sheth * Added --folders argument - Giuseppe Scrivano * imapbackup disappeared from Rui Carmo's site. This version found at: https://gist.github.com/raw/273418/fe7c59f69ba57c40dde8c8c33d6105f46f458df8/imapbackup.py 2008-12-08 v1.4b * Fetch with BODY.PEEK instead of BODY, to avoid marking Gmail messages as read - Brandon Long (Gmail team) 2007-05-28 v1.4a * SSL support! Can use a private key file and server certificate chain file. Unfortunately, Python's ssl module doesn't check the certificate chain. This needs to be fixed. * You can now specify the port number as part of the server name. Example: imapbackup.py -u user -s mail.com:1234 * Cleaned up code. Used pylint to find code that didn't comply with best practices. 2007-05-27 v1.3b * Fixed bug in error message printout. 2007-05-26 v1.3a * Better support for result of LIST command. Fixes the problem of some folders not getting backed up from Courier IMAPd * Improved usage printout, made parameters more consistent. * Added support for socket._fileobject.recv bugfix on Windows 2007-03-27 v1.2e * By Rui Carmo. Downloaded from: http://the.taoofmac.com/space/Projects/imapbackup http://web.archive.org/web/20071011040436/http://the.taoofmac.com/space/Projects/imapbackup