Python实现获取邮箱内容并解析的方法示例
本文实例讲述了Python实现获取邮箱内容并解析的方法。分享给大家供大家参考,具体如下:
#-*-coding:utf-8-*- fromemail.parserimportParser fromemail.headerimportdecode_header fromemail.utilsimportparseaddr importpoplib #输入邮件地址,口令和POP3服务器地址: email=input('Email:') password=input('Password:') pop3_server=input('POP3server:') defguess_charset(msg): charset=msg.get_charset() ifcharsetisNone: content_type=msg.get('Content-Type','').lower() pos=content_type.find('charset=') ifpos>=0: charset=content_type[pos+8:].strip() returncharset defdecode_str(s): value,charset=decode_header(s)[0] ifcharset: value=value.decode(charset) returnvalue defprint_info(msg,indent=0): ifindent==0: forheaderin['From','To','Subject']: value=msg.get(header,'') ifvalue: ifheader=='Subject': value=decode_str(value) else: hdr,addr=parseaddr(value) name=decode_str(hdr) value=u'%s<%s>'%(name,addr) print('%s%s:%s'%(''*indent,header,value)) if(msg.is_multipart()): parts=msg.get_payload() forn,partinenumerate(parts): print('%spart%s'%(''*indent,n)) print('%s--------------------'%(''*indent)) print_info(part,indent+1) else: content_type=msg.get_content_type() ifcontent_type=='text/plain'orcontent_type=='text/html': content=msg.get_payload(decode=True) charset=guess_charset(msg) ifcharset: content=content.decode(charset) print('%sText:%s'%(''*indent,content+'...')) else: print('%sAttachment:%s'%(''*indent,content_type)) #连接到POP3服务器: server=poplib.POP3_SSL(pop3_server,995) #可以打开或关闭调试信息: server.set_debuglevel(1) #可选:打印POP3服务器的欢迎文字: print(server.getwelcome().decode('utf-8')) #身份认证: server.user(email) server.pass_(password) #stat()返回邮件数量和占用空间: print('Messages:%s.Size:%s'%server.stat()) #list()返回所有邮件的编号: resp,mails,octets=server.list() #可以查看返回的列表类似[b'182923',b'22184',...] print(mails) #获取最新一封邮件,注意索引号从1开始: index=len(mails) resp,lines,octets=server.retr(index) #lines存储了邮件的原始文本的每一行, #可以获得整个邮件的原始文本: msg_content=b'\r\n'.join(lines).decode('utf-8') #稍后解析出邮件: msg=Parser().parsestr(msg_content) print_info(msg) #可以根据邮件索引号直接从服务器删除邮件: #server.dele(index) #关闭连接: server.quit()
更多关于Python相关内容可查看本站专题:《PythonSocket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。