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操作邮箱相关推荐

  1. python读取mac地址_python - 获取MAC地址

    python - 获取MAC地址 我需要一种在运行时确定计算机MAC地址的跨平台方法. 对于Windows,可以使用'wmi'模块,我可以找到Linux下唯一的方法是运行ifconfig并在其输出中运 ...

  2. python修改mac地址_python利用_winreg模块制作MAC地址修改工具

    通过百度搜索知道,xp下修改MAC地址的方法主要有两个,一种是通过配置本地链接属性来实现,这种方法不适合用程序来完成,另一种是通过修改注册表来完成,本程序主要是利用了这种方法. 具体方法:Window ...

  3. python 关闭 定时开启_Python爬虫邮箱定时自动发送

    背景介绍 小说网站-笔趣看:      URL:http://www.biqukan.com/ 笔趣看是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更 ...

  4. python获取网页图片_Python获取网页上图片下载地址的方法

    本文实例讲述了Python获取网页上图片下载地址的方法.分享给大家供大家参考.具体如下: 这里获取网页上图片的下载地址是正在写的数据采集中的一段,代码如下: #!/user/bin/python3 i ...

  5. python 获取照片拍摄时间_Python实现获取照片拍摄日期并重命名的方法

    本文实例讲述了Python实现获取照片拍摄日期并重命名的方法.分享给大家供大家参考,具体如下: python获取照片的拍摄日期并重命名.不支持重复处理的中断. 重命名为:拍摄日期__原文件名 impo ...

  6. python获取登录按钮_Python:Selenium模拟Chrome浏览器抓取淘宝商品信息

    对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...

  7. linux下载python的地址_Linux下Python获取IP地址的代码

    <lnmp一键安装包>中需要获取ip地址,有2种情况:如果服务器只有私网地址没有公网地址,这个时候获取的IP(即私网地址)不能用来判断服务器的位置,于是取其网关地址用来判断服务器在国内还是 ...

  8. 邮箱地址是什么?什么是邮箱地址?电子邮箱地址大全

    当大家想新注册一个邮箱时,首先会想到要注册什么名字,TOMVIP最近新上线的163后缀,满足了大家对邮箱名称的所有想象,想注册什么样的都有~ TOM163可线上注册,所以很多公司也喜欢用VIP邮箱,因 ...

  9. python获取文件路径名_python文件名获取文件路径

    如何使用Python获取文件所在目录和文件名 python中如何根据文件名找他的路径.现在我遍历到怎么才能将某一个文件对应的路径找到呢? 遍历用os.walk: import osfrom os.pa ...

最新文章

  1. 【日记】一次程序调优发现的同步IO写的问题,切记
  2. Ubuntu下安装Python开发的Facebook Faiss相似性搜索工具
  3. asp.net 2.0 下的一个小技巧
  4. 图片类关于实现图片剪切功能的相关类的学习心得
  5. 第11章 连接查询和分组查询
  6. 雅礼中学第四场20180109
  7. 【Matlab学习笔记】【函数学习】nargin 参数
  8. 万年历代码c语言CSDN,c语言万年历代码
  9. 利用android studio制作简单的QQ的注册、登录、忘记密码的页面
  10. linux修改无线网卡hwaddr,在Linux下改无线网卡的mac的地址
  11. 挖个大坑:挑战用纯micropython写一个nes模拟器(一)
  12. SpringBoot项目中遇到的问题
  13. vue项目使用vue-amap调用高德地图api详细步骤
  14. 修改html2canvas生成图片的dpi
  15. 欠定方程组的最小范数解
  16. BP神经网络原理及Matlab实现(Back Propagation Neural Networks,BPNN)
  17. c语言break语句作用范围,C语言程序设计中break语句分析
  18. 全/半角转换,间繁体转换
  19. html段落简字前带繁字,简体字转繁体字有什么方法?Word怎么繁体转简体?
  20. Kubernetes-Ubuntu虚拟机安装kubectl,kubeadm,kubelet

热门文章

  1. 设计模式的理解:单例模式(Singleton)
  2. SPC5Studio 入门
  3. 复合类型_没有学不会的python--复合类型(1)--概念和元组
  4. 概要设计和详细设计区别_一体化工程设计:打破前期工程设计与详细设计之间的藩篱...
  5. 什么是 DDos 攻击
  6. 什么是 DMZ 区?
  7. matlab 范德蒙德矩阵,Matlab中fft与fwelch有什么区别?如何用fft求功率谱?
  8. android源码下载与编译,Android源码下载并编译
  9. HDU 3537 Daizhenyang's Coin
  10. iOS - app 进行安全加固