python登录邮箱·

import poplib  #接受邮件
import smtplib  # 发送邮件
from email.header import decode_header   #编码解码
from email.mime.text import MIMEText   #设置邮件内容
import email    #与邮件的相关操作


'''
#如何登录邮箱
#安目的分为是为发送邮件而登录,还是为读取邮件而登录
#先说为发送邮件而登录的操作。一般来说,为了发送邮件登录使用SMTP,为接收邮件登录使用POP
sent=smtplib.SMTP('smtp.sina.com')  # 设置了SMTP服务器为smtp.sina.com
sent.login('gzkhahaha@sina.com','gzk0820gzk')  #设置了登录账号与密码。密码为独立密码

# 发送邮件
# 刚才我们已经登录了,现在设置发送的内容,然后发送
to='2123296053@qq.com'
content=MIMEText("你好帅!")  #设置邮件内容,MIMEText的参数代表邮件内容
content['Subject']='帅'  # 设置邮件标题
content['From']='gzkhahaha@sina.com'  #设置邮件从哪里发送
content['To']=to  #设置邮件发送到哪里
sent.sendmail('gzkhahaha@sina.com',to,content.as_string())  # 参数一为邮件的发送者,参数二为邮件的接收者,参数三为必须写的
sent.close() # 关闭邮箱
'''



#如何读取邮件
read=poplib.POP3('pop.sina.com')   #设置POP3服务器为pop.sina.com
read.user('gzkhahaha@sina.com')  # 登陆这个账号去读取邮件
read.pass_('gzk0820gzk')    #  登陆这个账号所需的密码
tongji=read.stat()   #返回邮箱的基本统计信息
#print(tongji)   #  返回两个参数,第一个为邮件数,第二个为邮件总字节数
str=read.top(tongji[0],0)  #服务器将返回参数标识的邮件前0行内容(即第一封邮件),返回的str为列表,有三个元素
#print str  #返回了三个参数,并且第二个参数对我们有用
str2=[]   # 由于str是有参数标识的,因此接下来我们将对str编码解码,并将解码后的str[1]储存在str2中
for x in str[1]:  # 其中str[1],也就是str的第二个参数为第一封邮件的各种参数,在这里要给其进行编码
    try: # 尝试默认编码
        str2.append(x.decode())
    except:
        try: #尝试gbk编码
            str2.append(x.decode('gbk'))
        except:#尝试gbk5编码
            str2.append(x.decode('big5'))
msg=email.message_from_string('\n'.join(str2)) #这个方法能把string的邮件转换成email,message实列
# msg是把经过编码的str2转化为可识别的邮件信息,并且每行一个信息,join用来连接字符串
biaoti=decode_header(msg['subject'])# 对msg进行解码
#print(biaoti)# biaoti的格式是[(' ',' ')]这样子的,的一个是标题内容,第二个是标题编码的方法
if biaoti[0][1]:#判断有没有第二个元素,若没,则标题没有进行编码,有则以该编码方式对第一个元素进行解码。
    biaoti2=biaoti[0][0].decode(biaoti[0][1])#将解码后的标题赋值给biaoti2
else:
    biaoti2=biaoti[0][0]
print(biaoti2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值