Extract zip file from email attachment

erikcw erikwickstrom at gmail.com
Thu Apr 5 19:31:47 EDT 2007


Hi all,

I'm trying to extract zip file (containing an xml file) from an email
so I can process it.  But I'm running up against some brick walls.
I've been googling and reading all afternoon, and can't seem to figure
it out.

Here is what I have so far.

p = POP3("mail.server.com")
print p.getwelcome()
# authentication, etc.
print p.user("USER")
print p.pass_("PASS")
print "This mailbox has %d messages, totaling %d bytes." % p.stat()
msg_list = p.list()
print msg_list
if not msg_list[0].startswith('+OK'):
        # Handle error
        exit(1)

for msg in msg_list[1]:
        msg_num, _ = msg.split()
        resp = p.retr(msg_num)
        if resp[0].startswith('+OK'):
            #print resp, '=======================\n'
            #extract message body and attachment.
            parsed_msg = email.message_from_string('\n'.join(resp[1]))
            payload= parsed_msg.get_payload(decode=True)
            print payload  #doesn't seem to work
        else:
                pass# Deal with error retrieving message.

How do I:
a) retrieve the body of the email into a string so I can do some
processing? (I can get at the header attributes without any trouble)
b) retrieve the zip file attachment, and unzip into a string for xml
processing?

Thanks so much for your help!
Erik




More information about the Python-list mailing list