views:

501

answers:

1

I am having difficulty determining if the body of a text email message is base64 encoded. if it is then use this line of code; making use of jython 2.2.1

dirty=base64.decodestring(dirty)

else continue as normal.

This is the code I have atm. What line of code will allow me to extract this from the email:

"Content-Transfer-Encoding: base64"

import email, email.Message
import base64

def _get_email_body(self):
    try:
        parts=self._email.get_payload()
        check=parts[0].get_content_type()
        if check=="text/plain":
            part=parts[0].get_payload()
            enc = part[0]['Content-Transfer-Encoding']
            if enc == "base64":
                dirty=base64.decodestring(dirty)
        elif check=="multipart/alternative":
            part=parts[0].get_payload()
            enc = part[0]['Content-Transfer-Encoding']
            if part[0].get_content_type()=="text/plain":
                dirty=part[0].get_payload()
                if enc == "base64":
                    dirty=base64.decodestring(dirty)
            else:
                return "cannot obtain the body of the email"
        else:
            return "cannot obtain the body of the email"
        return dirty
    except:
        raise

OKAY this code works now! thanks all

+3  A: 

Try:

enc = msg['Content-Transfer-Encoding']

It's a header so you won't be able to get it looking at the body. You should be able to get at the same place you find out the Subject.

Harley
AH yes, I completely forgot!
Setori