diff --git a/gmail/message.py b/gmail/message.py index 9813ce4..ec64851 100644 --- a/gmail/message.py +++ b/gmail/message.py @@ -153,7 +153,13 @@ def parse(self, raw_message): elif content.get_content_type() == "text/html": self.html = content.get_payload(decode=True) elif self.message.get_content_maintype() == "text": - self.body = self.message.get_payload() + if 'Content-Transfer-Encoding' in self.headers and self.headers['Content-Transfer-Encoding'] in ['quoted-printable', 'base64']: + if self.message.get_content_type() == "text/plain": + self.body = self.message.get_payload(decode=True) + elif self.message.get_content_type() == "text/html": + self.html = self.message.get_payload(decode=True) + else: + self.body = self.message.get_payload() self.sent_at = datetime.datetime.fromtimestamp(time.mktime(email.utils.parsedate_tz(self.message['date'])[:9]))