From 08cb287ff81d9b6eba73960bdbdf8f77e777cb01 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 22 Jun 2016 12:07:06 +0300 Subject: [PATCH 1/2] Fix "object of type NoneType has no len()" in mail.fetch() --- gmail/message.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/gmail/message.py b/gmail/message.py index 9813ce4..2e69e03 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): @@ -166,13 +166,21 @@ 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 - ] - + self.attachments = [] + def make_attachement(attachments): + for attachment in attachments: + if attachment.get_content_type() == 'message/rfc822': + make_attachement(attachment.get_payload()) + else: + if not attachment.is_multipart(): + self.attachments.append(Attachment(attachment)) + else: + make_attachement(attachment.get_payload()) + + make_attachement(self.message.get_payload()) + def fetch(self): if not self.message: From f7a657fae7b40e7f9648db81e023d79638bd5f21 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 22 Jun 2016 12:08:03 +0300 Subject: [PATCH 2/2] Increment version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index fbb6d91..6beada5 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def read(fname): setup( name = "gmail", - version = "0.0.5", + version = "0.0.6", author = "Charlie Guo", author_email = "FIXME", description = ("A Pythonic interface for Google Mail."),