import poplib import cStringIO import email import base64 M = poplib.POP3('pop.163.com') M.user('xtrgm523') M.pass_('pass') numMessages = len(M.list()[1]) print'num of messages', numMessages for i in range(numMessages): m = M.retr(i+1) buf = cStringIO.StringIO() for j in m[1]: print>>buf, j buf.seek(0) msg = email.message_from_file(buf) for part in msg.walk(): contenttype = part.get_content_type() filename = part.get_filename() if filename and contenttype =='application/octet-stream': f=open(".mail%d.%s.attach"% (i+1,filename),'wb') f.write(base64.decodestring(part.get_payload())) f.close() elif contenttype =='text/plain': f = open("mail%d.txt"% (i+1),'wb') f.write(base64.decodestring(part.get_payload())) f.close()