def get_bodies(self): """Extract body alternatives, if any.""" body_html = "" body_plain = "" if self.mail.get("Content-Type", None): if self.mail.is_multipart(): if self.mail.get_content_subtype() == 'encrypted': parts = self.mail.get_payload() if len(parts) == 2: self.body_plain = parts[1].get_payload() return else: log.warn('Encrypted message with invalid parts count') for top_level_part in self.mail.get_payload(): if top_level_part.get_content_maintype() == "multipart": for alternative in top_level_part.get_payload(): charset = alternative.get_param("charset") if isinstance(charset, tuple): charset = unicode(charset[2], charset[0] or "us-ascii") if alternative.get_content_type() == "text/plain": body_plain = alternative.get_payload( decode=True) self.body_plain = to_utf8(body_plain, charset) elif alternative.get_content_type() == "text/html": body_html = alternative. \ get_payload(decode=True) self.body_html = to_utf8(body_html, charset) break else: charset = top_level_part.get_param("charset") if isinstance(charset, tuple): charset = unicode(charset[2], charset[0] or "us-ascii") if top_level_part.get_content_type() == "text/plain": body_plain = top_level_part. \ get_payload(decode=True) self.body_plain = to_utf8(body_plain, charset) elif top_level_part.get_content_type() == "text/html": body_html = top_level_part.get_payload(decode=True) self.body_html = to_utf8(body_html, charset) else: charset = self.mail.get_param("charset") if isinstance(charset, tuple): charset = unicode(charset[2], charset[0] or "us-ascii") if self.mail.get_content_type() == "text/html": body_html = self.mail.get_payload(decode=True) self.body_html = to_utf8(body_html, charset) else: body_plain = self.mail.get_payload(decode=True) self.body_plain = to_utf8(body_plain, charset) else: self.body_plain = self.mail.get_payload(decode=True)
def get_bodies(self): """Extract body alternatives, if any.""" body_html = "" body_plain = "" if self.mail.get("Content-Type", None): if self.mail.is_multipart(): for top_level_part in self.mail.get_payload(): if top_level_part.get_content_maintype() == "multipart": for alternative in top_level_part.get_payload(): charset = alternative.get_param("charset") if isinstance(charset, tuple): charset = unicode(charset[2], charset[0] or "us-ascii") if alternative.get_content_type() == "text/plain": body_plain = alternative.get_payload( decode=True) self.body_plain = to_utf8(body_plain, charset) elif alternative.get_content_type() == "text/html": body_html = alternative. \ get_payload(decode=True) self.body_html = to_utf8(body_html, charset) break else: charset = top_level_part.get_param("charset") if isinstance(charset, tuple): charset = unicode(charset[2], charset[0] or "us-ascii") if top_level_part.get_content_type() == "text/plain": body_plain = top_level_part. \ get_payload(decode=True) self.body_plain = to_utf8(body_plain, charset) elif top_level_part.get_content_type() == "text/html": body_html = top_level_part.get_payload(decode=True) self.body_html = to_utf8(body_html, charset) else: charset = self.mail.get_param("charset") if isinstance(charset, tuple): charset = unicode(charset[2], charset[0] or "us-ascii") if self.mail.get_content_type() == "text/html": body_html = self.mail.get_payload(decode=True) self.body_html = to_utf8(body_html, charset) else: body_plain = self.mail.get_payload(decode=True) self.body_plain = to_utf8(body_plain, charset) else: self.body_plain = self.mail.get_payload(decode=True)