utils: fix decoding of invalid headers
authorOlivier Matz <zer0@droids-corp.org>
Sun, 29 Nov 2015 10:51:34 +0000 (11:51 +0100)
committerOlivier Matz <zer0@droids-corp.org>
Sun, 29 Nov 2015 10:51:34 +0000 (11:51 +0100)
commit6a57a643b9616029a8142197a27cd76caf7dc5f5
tree1a95504a6c1f87b08e162e879c1fe33713f00b6c
parent49d297122b300fab89f4a806b3ce99c07572eea1
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>
imapami/utils.py