raise NotmuchError
next_indent = indent + 1
-
+ # get replies and print them also out (if there are any)
replies = msg.get_replies()
- # if isinstance(replies, types.NoneType):
- # break
if not replies is None:
sys.stdout.write(set_sep)
replies.print_messages(format, next_indent, entire_thread)
email_msg = email.message_from_file(fp)
fp.close()
- # A subfunction to recursively unpack the message parts into a
- # list.
- def msg_unpacker_gen(msg):
+ out = []
+ for msg in email_msg.walk():
if not msg.is_multipart():
- yield msg
- else:
- for part in msg.get_payload():
- for subpart in msg_unpacker_gen(part):
- yield subpart
+ out.append(msg)
+ return out
- return list(msg_unpacker_gen(email_msg))
+ def get_part(self, num):
+ """Returns the nth message body part"""
+ parts = self.get_message_parts()
+ if (num <= 0 or num > len(parts)):
+ return ""
+ else:
+ out_part = parts[(num - 1)]
+ return out_part.get_payload(decode=True)
def format_message_internal(self):
"""Create an internal representation of the message parts,
output["tags"] = list(self.get_tags())
headers = {}
- for h in ["subject", "from", "to", "cc", "bcc", "date"]:
+ for h in ["Subject", "From", "To", "Cc", "Bcc", "Date"]:
headers[h] = self.get_header(h)
output["headers"] = headers
part_dict["id"] = i + 1
# We'll be using this is a lot, so let's just get it once.
cont_type = msg.get_content_type()
- part_dict["content_type"] = cont_type
+ part_dict["content-type"] = cont_type
# NOTE:
# Now we emulate the current behaviour, where it ignores
# the html if there's a text representation.
# here in the future than to end up with another
# incompatible solution.
disposition = msg["Content-Disposition"]
- if disposition:
- if disposition.lower().startswith("attachment"):
- part_dict["filename"] = msg.get_filename()
+ if disposition and disposition.lower().startswith("attachment"):
+ part_dict["filename"] = msg.get_filename()
else:
if cont_type.lower() == "text/plain":
part_dict["content"] = msg.get_payload()
elif (cont_type.lower() == "text/html" and
i == 0):
part_dict["content"] = msg.get_payload()
- body.append(part_dict)
+ body.append(part_dict)
+
output["body"] = body
return output