aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolaus Schulz <microschulz@web.de>2007-11-07 14:33:17 +0000
committerNikolaus Schulz <microschulz@web.de>2007-11-07 14:33:17 +0000
commit1e5cb090e73ccf5e336f6a1eec0e854efa7396fd (patch)
tree190dcca3af8ea28a44ae8e08017a80633409dad9
parentbcb01613d0ede7a2bb3725a19ea6c10614bd5ccf (diff)
downloadarchivemail-1e5cb090e73ccf5e336f6a1eec0e854efa7396fd.tar.gz
archivemail-1e5cb090e73ccf5e336f6a1eec0e854efa7396fd.tar.bz2
archivemail-1e5cb090e73ccf5e336f6a1eec0e854efa7396fd.zip
Fixed IMAP --verbose mode to say what we're *intending* to do next, instead of
reporting success after the fact. This makes a lot more sense for debugging. Also added some more messages.
-rwxr-xr-xarchivemail.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/archivemail.py b/archivemail.py
index 6d006a3..06ae75d 100755
--- a/archivemail.py
+++ b/archivemail.py
@@ -1337,24 +1337,24 @@ def _archive_imap(mailbox_name, final_archive_name):
imap_password = getpass.getpass('IMAP password: ')
if mailbox_name[:5] == 'imaps':
+ vprint("establishing secure connection to server %s" % imap_server)
imap_srv = imaplib.IMAP4_SSL(imap_server)
- vprint("established secure connection to server %s" % imap_server)
else:
+ vprint("establishing connection to server %s" % imap_server)
imap_srv = imaplib.IMAP4(imap_server)
- vprint("established connection to server %s" % imap_server)
+ vprint("logging in to server as %s" % imap_username)
try:
result, response = imap_srv.login_cram_md5(imap_username, imap_password)
except imaplib.IMAP4.error:
result, response = imap_srv.login(imap_username, imap_password)
- vprint("logged in to server as %s" % imap_username)
+ vprint("selecting imap folder '%s'" % imap_folder)
if options.dry_run or options.copy_old_mail:
result, response = imap_srv.select(imap_folder, readonly=True)
else:
result, response = imap_srv.select(imap_folder)
if result != 'OK': unexpected_error("cannot select imap folder; "
"server says '%s'" % response[0])
- vprint("selected imap folder %s" % imap_folder)
# response is e.g. ['1016'] for 1016 messages in folder
total_msg_count = int(response[0])
vprint("folder has %d message(s)" % total_msg_count)
@@ -1366,6 +1366,7 @@ def _archive_imap(mailbox_name, final_archive_name):
# Worst thing should be that we bail out FETCHing a message that has been
# deleted.
+ vprint("searching messages matching criteria")
result, response = imap_srv.search(None, imap_filter)
if result != 'OK': unexpected_error("imap search failed; server says '%s'" %
response[0])
@@ -1376,6 +1377,7 @@ def _archive_imap(mailbox_name, final_archive_name):
# First, gather data for the statistics.
if total_msg_count > 0:
+ vprint("fetching size of messages...")
result, response = imap_srv.fetch('1:*', '(RFC822.SIZE)')
if result != 'OK': unexpected_error("Failed to fetch message sizes; "
"server says '%s'" % response[0])
@@ -1391,6 +1393,7 @@ def _archive_imap(mailbox_name, final_archive_name):
if not options.dry_run:
if not options.delete_old_mail:
+ vprint("fetching messages...")
for msn in message_list:
# Fetching message flags and body together always finds \Seen
# set. To check \Seen, we must fetch the flags first.
@@ -1406,8 +1409,8 @@ def _archive_imap(mailbox_name, final_archive_name):
else:
msg_str = response[0][1].replace("\r\n", os.linesep)
msg = rfc822.Message(cStringIO.StringIO(msg_str))
- add_status_headers_imap(msg, msg_flags)
vprint("processing message '%s'" % msg.get('Message-ID'))
+ add_status_headers_imap(msg, msg_flags)
if options.warn_duplicates:
cache.warn_if_dupe(msg)
if not archive:
@@ -1428,6 +1431,7 @@ def _archive_imap(mailbox_name, final_archive_name):
'+FLAGS.SILENT', '\\Deleted')
if result != 'OK': unexpected_error("Error while deleting "
"messages; server says '%s'" % response[0])
+ vprint("Closing mailbox and terminating connection.")
imap_srv.close()
imap_srv.logout()
if not options.quiet: