Hi,

while working on gpgit.py, I needed a function to show me how the content of an email was structured. I came up with this:

def print_email_mime_tree(email_obj):
    tree = [email_obj]
    deep = 0
    while not len(tree) == 0:
        pay = tree.pop()
        if pay == "":
            deep -= 1
        else:
            print(" " * deep + "|")
            print(" " * deep + "|" + pay.get_content_type())
            if pay.is_multipart():
                deep += 1
                tree.append("")
                tree.extend(reversed(pay.get_payload()))

It will print the structure in the form of:

 multipart/related  text/html  image/gif  image/gif  \begin{array}{ll} | & \\\ |\textrm{multipart/related} & \\\ &| \\\ &|\textrm{text/html} \\\ &| \\\ &|\textrm{image/gif} \\\ &| \\\ &|\textrm{image/gif} \\\ \end{array}

I hope it comes in as handy for you as it was for me!


Published

Category

snippets

Tags