时间:2021-05-22
本文实例讲述了Python实现获取邮箱内容并解析的方法。分享给大家供大家参考,具体如下:
# -*- coding: utf-8 -*-from email.parser import Parserfrom email.header import decode_headerfrom email.utils import parseaddrimport poplib#输入邮件地址, 口令和POP3服务器地址:email = input('Email: ')password = input('Password: ')pop3_server = input('POP3 server: ')def guess_charset(msg): charset = msg.get_charset() if charset is None: content_type = msg.get('Content-Type', '').lower() pos = content_type.find('charset=') if pos >= 0: charset = content_type[pos + 8:].strip() return charsetdef decode_str(s): value, charset = decode_header(s)[0] if charset: value = value.decode(charset) return valuedef print_info(msg, indent=0): if indent == 0: for header in ['From', 'To', 'Subject']: value = msg.get(header, '') if value: if header=='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() for n, part in enumerate(parts): print('%spart %s' % (' ' * indent, n)) print('%s--------------------' % (' ' * indent)) print_info(part, indent + 1) else: content_type = msg.get_content_type() if content_type=='text/plain' or content_type=='text/html': content = msg.get_payload(decode=True) charset = guess_charset(msg) if charset: 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'1 82923', b'2 2184', ...]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相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这篇文章主要介绍了Python操作SonqubeAPI获取检测结果并打印过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
pyquery库是jQuery的Python实现,可以用于解析HTML网页内容,使用方法:复制代码代码如下:frompyqueryimportPyQueryas
本文实例讲述了python解析xml文件操作的实现方法。分享给大家供大家参考。具体方法如下:xml文件内容如下:samplexmlthingmaxiaojuSp
前言本文主要介绍的是关于利用python获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧示例代码:importdatetimefrom