python获取邮箱地址_Python操作邮箱
from email.parser importParserfrom email.header importdecode_headerfrom email.utils importparseaddrimportpoplib#输入邮件地址, 口令和POP3服务器地址:#email = input('Email: ')#password = input('Password: ')#pop3_server = input('POP3 server: ')
#新浪邮箱测试通过, 密码使用登陆密码#email = "18937905850@sina.cn"#password = "password"#pop3_server = "pop.sina.cn"
#qq邮箱测试通过, 使用授权码, 使用ssl#email = ""#password = ""#pop3_server = "pop.qq.com"
classEmail:def __init__(self,account,password,pop3_server):
self.account=account
self.password=password
self.pop3_server=pop3_serverdefguess_charset(self,msg):
charset=msg.get_charset()if charset isNone:
content_type= msg.get('Content-Type', '').lower()
pos= content_type.find('charset=')if pos >=0:
charset= content_type[pos + 8:].strip()returncharsetdefdecode_str(self,s):
value, charset=decode_header(s)[0]ifcharset:
value=value.decode(charset)returnvaluedef print_info(self,msg, indent=0):if indent ==0:for header in ['From', 'To', 'Subject']:
value= msg.get(header, '')ifvalue:if header == 'Subject':
value=self.decode_str(value)else:
hdr, addr=parseaddr(value)
name=self.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 inenumerate(parts):print('%spart %s' % (' ' *indent, n))print('%s--------------------' % (' ' *indent))
self.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=self.guess_charset(msg)ifcharset:
content=content.decode(charset)print('%sText: %s' % (' ' * indent, content + '...'))else:print('%sAttachment: %s' % (' ' *indent, content_type))defmain(self):#连接到POP3服务器:
#server = poplib.POP3(pop3_server)
#qq需要使用ssl
server =poplib.POP3_SSL(pop3_server)#可以打开或关闭调试信息:
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)
self.print_info(msg)#可以根据邮件索引号直接从服务器删除邮件:
#server.dele(index)
#关闭连接:
server.quit()if __name__ == '__main__':
email= "bestfuture25@qq.com"password= "titeexrfwjutbhhg"pop3_server= "pop.qq.com"Email(email,password,pop3_server).main()
python获取邮箱地址_Python操作邮箱相关推荐
- python读取mac地址_python - 获取MAC地址
python - 获取MAC地址 我需要一种在运行时确定计算机MAC地址的跨平台方法. 对于Windows,可以使用'wmi'模块,我可以找到Linux下唯一的方法是运行ifconfig并在其输出中运 ...
- python修改mac地址_python利用_winreg模块制作MAC地址修改工具
通过百度搜索知道,xp下修改MAC地址的方法主要有两个,一种是通过配置本地链接属性来实现,这种方法不适合用程序来完成,另一种是通过修改注册表来完成,本程序主要是利用了这种方法. 具体方法:Window ...
- python 关闭 定时开启_Python爬虫邮箱定时自动发送
背景介绍 小说网站-笔趣看: URL:http://www.biqukan.com/ 笔趣看是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更 ...
- python获取网页图片_Python获取网页上图片下载地址的方法
本文实例讲述了Python获取网页上图片下载地址的方法.分享给大家供大家参考.具体如下: 这里获取网页上图片的下载地址是正在写的数据采集中的一段,代码如下: #!/user/bin/python3 i ...
- python 获取照片拍摄时间_Python实现获取照片拍摄日期并重命名的方法
本文实例讲述了Python实现获取照片拍摄日期并重命名的方法.分享给大家供大家参考,具体如下: python获取照片的拍摄日期并重命名.不支持重复处理的中断. 重命名为:拍摄日期__原文件名 impo ...
- python获取登录按钮_Python:Selenium模拟Chrome浏览器抓取淘宝商品信息
对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...
- linux下载python的地址_Linux下Python获取IP地址的代码
<lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...
- 邮箱地址是什么?什么是邮箱地址?电子邮箱地址大全
当大家想新注册一个邮箱时,首先会想到要注册什么名字,TOMVIP最近新上线的163后缀,满足了大家对邮箱名称的所有想象,想注册什么样的都有~ TOM163可线上注册,所以很多公司也喜欢用VIP邮箱,因 ...
- python获取文件路径名_python文件名获取文件路径
如何使用Python获取文件所在目录和文件名 python中如何根据文件名找他的路径.现在我遍历到怎么才能将某一个文件对应的路径找到呢? 遍历用os.walk: import osfrom os.pa ...
最新文章
- 【日记】一次程序调优发现的同步IO写的问题,切记
- Ubuntu下安装Python开发的Facebook Faiss相似性搜索工具
- asp.net 2.0 下的一个小技巧
- 图片类关于实现图片剪切功能的相关类的学习心得
- 第11章 连接查询和分组查询
- 雅礼中学第四场20180109
- 【Matlab学习笔记】【函数学习】nargin 参数
- 万年历代码c语言CSDN,c语言万年历代码
- 利用android studio制作简单的QQ的注册、登录、忘记密码的页面
- linux修改无线网卡hwaddr,在Linux下改无线网卡的mac的地址
- 挖个大坑:挑战用纯micropython写一个nes模拟器(一)
- SpringBoot项目中遇到的问题
- vue项目使用vue-amap调用高德地图api详细步骤
- 修改html2canvas生成图片的dpi
- 欠定方程组的最小范数解
- BP神经网络原理及Matlab实现(Back Propagation Neural Networks,BPNN)
- c语言break语句作用范围,C语言程序设计中break语句分析
- 全/半角转换,间繁体转换
- html段落简字前带繁字,简体字转繁体字有什么方法?Word怎么繁体转简体?
- Kubernetes-Ubuntu虚拟机安装kubectl,kubeadm,kubelet
热门文章
- 设计模式的理解:单例模式(Singleton)
- SPC5Studio 入门
- 复合类型_没有学不会的python--复合类型(1)--概念和元组
- 概要设计和详细设计区别_一体化工程设计:打破前期工程设计与详细设计之间的藩篱...
- 什么是 DDos 攻击
- 什么是 DMZ 区?
- matlab 范德蒙德矩阵,Matlab中fft与fwelch有什么区别?如何用fft求功率谱?
- android源码下载与编译,Android源码下载并编译
- HDU 3537 Daizhenyang's Coin
- iOS - app 进行安全加固