summaryrefslogtreecommitdiff
path: root/alot/db/message.py
diff options
context:
space:
mode:
Diffstat (limited to 'alot/db/message.py')
-rw-r--r--alot/db/message.py12
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