diff --git a/gmail/message.py b/gmail/message.py index 9813ce4..5a0f1a8 100644 --- a/gmail/message.py +++ b/gmail/message.py @@ -34,9 +34,9 @@ def __init__(self, mailbox, uid): self.thread_id = None self.thread = [] self.message_id = None - + self.attachments = None - + def is_read(self): @@ -131,7 +131,7 @@ def parse_labels(self, headers): def parse_subject(self, encoded_subject): dh = decode_header(encoded_subject) default_charset = 'ASCII' - return ''.join([ unicode(t[0], t[1] or default_charset) for t in dh ]) + return u''.join([ unicode(t[0], t[1] or default_charset, errors='ignore') for t in dh ]) def parse(self, raw_message): raw_headers = raw_message[0] @@ -166,13 +166,13 @@ def parse(self, raw_message): if re.search(r'X-GM-MSGID (\d+)', raw_headers): self.message_id = re.search(r'X-GM-MSGID (\d+)', raw_headers).groups(1)[0] - + # Parse attachments into attachment objects array for this message self.attachments = [ Attachment(attachment) for attachment in self.message._payload if not isinstance(attachment, basestring) and attachment.get('Content-Disposition') is not None ] - + def fetch(self): if not self.message: