使用pop3查看最新邮件的主题(subject)

import  poplib
from email.header import decode_header
from email.mime.text import MIMEText
import email

#如何读取邮件
#第一步:用poplib把邮件的原始文本下载到本地;
#第二部:用email解析原始文本,还原为邮件对象。

read = poplib.POP3("pop.163.com") #如果使用pop.qq.com会报错
#read.set_debuglevel(1) # 可以打开或关闭调试信息:
read.user("zxl80455@163.com") #设置登陆账号
read.pass_("a70674") #设置登陆密码,是授权码
tongji = read.stat() #返回的是邮箱基本统计信息,返回的是两个参数,第一为邮件个数,第二是字节总数
str = read.top(tongji[0],0) #服务器将返回由参数标识的邮件前0行内容,最后str为一个列表,有三个元素
#由参数标识是指只有系统能识别,肉眼看不出来。
print(str) #str是一个元组,有三个元素,我们需要使用第二个元素,也就是str[1],它也是一个列表就能拿到邮件具体的信息
str2 = []
for x in str[1]: #循环str[1]中的所有元素并进行编码
try:
str2.append(x.decode()) #先尝试默认编码,如果不是的话尝试gbk编码,如果还不是就尝试big5编码
except:
try:
str2.append(x.decode('gbk'))
except:
str2.append(x.decode('big5'))
#这个方法能把string的邮件转换成email.message对象,msg是把经过编码的str2转化为
# 可识别的邮件信息,并且每行一个信息,join用来链接字符串
msg = email.message_from_string('\n'.join(str2))
print(msg)
biaoti = decode_header(msg['subject'])
print(biaoti)
if biaoti[0][1]: #如果biaoti有第二个元素,说明有编码信息,比如第二个元素是utf-8
#使用biaoti的第一个元素去解码biaoti的第0个元素
biaoti2 = biaoti[0][0].decode(biaoti[0][1])
else:
biaoti2 = biaoti[0][0]
print(biaoti2)

转载于:https://www.cnblogs.com/dogs/p/10065631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值