python登录邮箱#183;

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)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部