用poplib库来检查指定邮件中的最新2封邮件

  返回邮件的主题还有发件人

from email import *
import re,email,email.header
from poplib import POP3
def decode_email_content(msg_src,names):
	msg=email.message_from_string(msg_src)#email.message_from_bytes只可以在python 3中运行
	#print msg
	result = { }
	for name in names:
		content = msg.get(name)
		#print content
		info = email.header.decode_header(content)#解码
		print info
		if info[0][1]:
			print '^^^^^'
			if info[0][1].find('unknown-') ==-1:#已知编码
				result[name] = info[0][0].decode(info[0][1])
			else:#未知编码
				try:
					result[name] = info[0][0].decode('gbk')
				except:
					result[name] = info[0][0].decode('utf-8')
		else:
			result[name] = info[0][0]
	return result
if __name__== "__main__":
	pp=POP3("pop3.163.com")
	pp.user('*******@163.com')
	pp.pass_('*******')
	total,totalnum = pp.stat()#邮件的数量和邮件总的字节数
	print (total,totalnum)
	for i in range(total-2,total):
		hinfo,msgs,octet=pp.top(i+1,0)#得到指定邮件中的第一行内容(从0开始)
		# print'%%%%%%'
		# print hinfo
		# print'%%%%%'
		# print msgs
		# print'&&&&'
		# print octet
		b=b''
		for msg in msgs:
			b += msg+b'\n'
		items = decode_email_content(b,['subject','from'])
		print items['subject'],'\nFrom:',items['from']
	pp.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值