diff --git a/.gitignore b/.gitignore index 96778bd..6496070 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ tmtags ## Test Account details spec/account.yml +dist +*.egg-info diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..bb3ec5f --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include README.md diff --git a/gmail/message.py b/gmail/message.py index 9813ce4..8f329e9 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,23 @@ 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 isinstance(attachment, basestring): + continue + 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: diff --git a/setup.py b/setup.py index fbb6d91..10bd17f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def read(fname): setup( name = "gmail", - version = "0.0.5", + version = "0.0.7", author = "Charlie Guo", author_email = "FIXME", description = ("A Pythonic interface for Google Mail."),