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:

$$ \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