diff options
-rw-r--r-- | alot/db/message.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/alot/db/message.py b/alot/db/message.py index 62169356..a6d67dfd 100644 --- a/alot/db/message.py +++ b/alot/db/message.py @@ -140,9 +140,17 @@ class _MimeTree: cd = part.get_content_disposition() fn = part.get_filename() if cd == 'attachment' or fn is not None: - data = part.get_content() + data = part.get_content() + params = part.get_params() + + # make sure data is always a byte-sequence + if isinstance(data, str): + data = data.encode('utf-8', errors = 'replace') + params = [p for p in params if p[0] != 'charset'] + \ + [('charset', 'utf-8')] + self.attachment = Attachment(data, self.content_type, - fn, part.get_params()) + fn, params) def __str__(self): return 'MimePart(%s)' % self.content_type |