From 83ca259ee6e14281dd7087a2187d7a592f6b9e77 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Wed, 9 Sep 2015 18:15:39 +0200 Subject: Fix mixed encodings in mail subjects - Issue #450 --- service/pixelated/adapter/mailstore/leap_mailstore.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'service/pixelated/adapter/mailstore/leap_mailstore.py') diff --git a/service/pixelated/adapter/mailstore/leap_mailstore.py b/service/pixelated/adapter/mailstore/leap_mailstore.py index 6dad12b0..eb12bd1d 100644 --- a/service/pixelated/adapter/mailstore/leap_mailstore.py +++ b/service/pixelated/adapter/mailstore/leap_mailstore.py @@ -114,11 +114,11 @@ class LeapMail(Mail): if isinstance(header_value, list): return self.remove_duplicates([self._decoded_header_utf_8(v) for v in header_value]) elif header_value is not None: - content, encoding = decode_header(header_value)[0] - if encoding: - return unicode(content, encoding=encoding) - else: - return unicode(content, encoding='ascii') + def encode_chunk(content, encoding): + return unicode(content, encoding=encoding or 'ascii') + + encoded_chunks = [encode_chunk(content, encoding) for content, encoding in decode_header(header_value)] + return ' '.join(encoded_chunks) # decode_header strips whitespaces on all chunks, joining over ' ' is only a workaround, not a proper fix def as_dict(self): return { -- cgit v1.2.3