actions: surround flags with parenthesis
It looks that when using uid, some servers expects that the flags
are surrounded by parenthesis. Else, we get this error:
UID command error: BAD
['Error in IMAP command UID STORE: Flags list contains non-atoms.']
Seen also here:
https://github.com/coddingtonbear/django-mailbox/commit/
dad65d802c7eab86c88dca3ef466dc4c43daffc0
Signed-off-by: Olivier Matz <zer0@droids-corp.org>
utils: fix decoding of invalid headers
For some mails, the following exception was thrown:
Traceback (most recent call last):
File "/usr/local/bin/imapami", line 9, in <module>
load_entry_point('imapami==0.1.0', 'console_scripts', 'imapami')()
File "build/bdist.linux-x86_64/egg/imapami/__init__.py", line 321, in main
File "build/bdist.linux-x86_64/egg/imapami/__init__.py", line 221, in process_rules
File "build/bdist.linux-x86_64/egg/imapami/rules.py", line 251, in process
File "build/bdist.linux-x86_64/egg/imapami/actions.py", line 149, in process
File "build/bdist.linux-x86_64/egg/imapami/actions.py", line 317, in process
File "build/bdist.linux-x86_64/egg/imapami/actions.py", line 98, in evaluate
File "build/bdist.linux-x86_64/egg/imapami/utils.py", line 65, in headers_to_unicode
File "/usr/lib/python2.7/email/header.py", line 108, in decode_header
raise HeaderParseError
email.errors.HeaderParseError
It can be reproduced manually with:
>>> import email.header
>>> email.header.decode_header('=?UTF-8?B?UG91ciB2b3MgYWNoYXRzIGRlIE5vw6tsLCBwcm9maXRleiBkJ3VuIGRv?==?UTF-8?B?dWJsZSBhdmFudGFnZSAh?=')
According to:
http://stackoverflow.com/questions/
7384006/email-header-decode-headers-throws-an-headerparseerror
A workaround is to fix the header manually.
Signed-off-by: Olivier Matz <zer0@droids-corp.org>