aboutsummaryrefslogtreecommitdiffstats
path: root/archivemail
diff options
context:
space:
mode:
authorNikolaus Schulz <microschulz@web.de>2010-07-30 19:13:14 +0200
committerNikolaus Schulz <microschulz@web.de>2010-07-30 19:15:21 +0200
commitf22fe4decd9a70a2eb826ecdd14f9d1bb3b4e394 (patch)
treef2d3353d1764877ea9eb936c6e99977d09560f70 /archivemail
parentd99b4b4414e90240524ceca6bb3ccd1ffa7fbbec (diff)
downloadarchivemail-f22fe4decd9a70a2eb826ecdd14f9d1bb3b4e394.tar.gz
archivemail-f22fe4decd9a70a2eb826ecdd14f9d1bb3b4e394.tar.bz2
archivemail-f22fe4decd9a70a2eb826ecdd14f9d1bb3b4e394.zip
Detect and never archive IMAP server pseudo mbox messages
IMAP servers (Dovecot and UW-IMAP at least) may store mailbox meta data for mboxes in a pseudo message. Such messages are now detected and never archived. This commit includes a test case in the test suite.
Diffstat (limited to 'archivemail')
-rwxr-xr-xarchivemail6
1 files changed, 6 insertions, 0 deletions
diff --git a/archivemail b/archivemail
index ec05171..52ec06b 100755
--- a/archivemail
+++ b/archivemail
@@ -1156,6 +1156,12 @@ def _archive_mbox(mailbox_name, final_archive_name):
msg = original.next()
if not msg and (original.starting_size > 0):
user_error("'%s' is not a valid mbox-format mailbox" % mailbox_name)
+ if msg and 'X-IMAP' in msg:
+ # Dovecot and UW-IMAP pseudo message for mailbox meta data
+ vprint("detected IMAP pseudo message")
+ if retain:
+ retain.write(msg)
+ msg = original.next()
while (msg):
msg_size = sizeof_message(msg)
stats.another_message(msg_size)