From 74c871644e4375983df62741a75aa5e6580f4535 Mon Sep 17 00:00:00 2001 From: Nikolaus Schulz Date: Fri, 2 Nov 2007 23:35:50 +0000 Subject: When converting from other formats to mbox, don't preserve existing 'Status' and 'X-Status' mbox headers, we better overwrite them with correct values. --- CHANGELOG | 3 +++ archivemail.py | 33 ++++++++++++--------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index ca60e6b..cbf0714 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -24,6 +24,9 @@ Version 0.7.1 - UNRELEASED * archivemail now accepts --days=0 * Fixed crash if --warn-duplicate is used with IMAP (Thanks Christian Brabandt) Closes: Debian bug #434786 (the Debian package already has a fix) + * When converting from other formats to mbox, archivemail used to preserve + existing 'Status' and 'X-Status' mbox headers; these are now silently + overwritten to ensure they have correct values. Version 0.7.0 - 2 November 2006 * Fixed long options --filter-append and --pwfile to accept their arguments. diff --git a/archivemail.py b/archivemail.py index c8bafbb..6ec738a 100755 --- a/archivemail.py +++ b/archivemail.py @@ -851,19 +851,14 @@ def add_status_headers(message): if last_dir == "cur": status = status + "O" - # Maildir messages should not already have 'Status' and 'X-Status' - # headers, although I have seen it done. If they do already have them, just - # preserve them rather than trying to overwrite/verify them. - old_status = message.get('Status') - if old_status: - vprint("preserving existing Status header '%s'" % old_status) - elif status: + # Overwrite existing 'Status' and 'X-Status' headers. They add no value in + # maildirs, and we better don't listen to them. + del message['Status'] + if status: vprint("converting maildir status into Status header '%s'" % status) message['Status'] = status - old_x_status = message.get('X-Status') - if old_x_status: - vprint("preserving existing X-Status header '%s'" % old_x_status) - elif x_status: + del message['X-Status'] + if x_status: vprint("converting maildir status into X-Status header '%s'" % x_status) message['X-Status'] = x_status @@ -888,18 +883,14 @@ def add_status_headers_imap(message, flags): if flags.count("\\Recent") == 0: status = status + "O" - # As with maildir folders, preserve Status and X-Status headers - # if they exist (they shouldn't) - old_status = message.get('Status') - if old_status: - vprint("preserving existing Status header '%s'" % old_status) - elif status: + # As with maildir folders, overwrite Status and X-Status headers + # if they exist. + del message['Status'] + if status: vprint("converting imap status into Status header '%s'" % status) message['Status'] = status - old_x_status = message.get('X-Status') - if old_x_status: - vprint("preserving existing X-Status header '%s'" % old_x_status) - elif x_status: + del message['X-Status'] + if x_status: vprint("converting imap status into X-Status header '%s'" % x_status) message['X-Status'] = x_status -- cgit v1.2.3