diff options
author | Nikolaus Schulz <microschulz@web.de> | 2010-10-16 18:53:28 +0200 |
---|---|---|
committer | Nikolaus Schulz <microschulz@web.de> | 2010-10-16 18:57:43 +0200 |
commit | 77a2856e4892a6e2231b50a0ae8e0b63eeb7ce08 (patch) | |
tree | 2398390c033bcdca70920644dcb8234873740270 | |
parent | 45f82b721813d430aaf58df435e8b1297d0d6365 (diff) | |
download | archivemail-77a2856e4892a6e2231b50a0ae8e0b63eeb7ce08.tar.gz archivemail-77a2856e4892a6e2231b50a0ae8e0b63eeb7ce08.tar.bz2 archivemail-77a2856e4892a6e2231b50a0ae8e0b63eeb7ce08.zip |
IMAP: don't prepend NAMESPACE prefix to INBOX and its children
-rwxr-xr-x | archivemail | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/archivemail b/archivemail index d5f326c..4eca685 100755 --- a/archivemail +++ b/archivemail @@ -1599,16 +1599,24 @@ def imap_guess_mailboxnames(srv, mailbox): hdelim = imap_getdelim(srv) vprint("IMAP namespace prefix: '%s', hierarchy delimiter: '%s'" % \ (nsprefix, hdelim)) - if mailbox.startswith(nsprefix): + if mailbox.upper() == "INBOX" or \ + (hdelim is not None and mailbox.upper().startswith("INBOX" + hdelim)): + # INBOX is not a real mailbox name, so namespace prefixes do not apply + # to INBOX and its children + boxnames = [mailbox] + elif mailbox.startswith(nsprefix): boxnames = [mailbox] else: boxnames = [nsprefix + mailbox] if os.path.sep in mailbox and hdelim is not None: mailbox = mailbox.replace(os.path.sep, hdelim) - if mailbox.startswith(nsprefix): + if mailbox.upper().startswith("INBOX" + hdelim): boxnames.append(mailbox) - if nsprefix: - boxnames.append(nsprefix + mailbox) + else: + if mailbox.startswith(nsprefix): + boxnames.append(mailbox) + if nsprefix: + boxnames.append(nsprefix + mailbox) return boxnames |