使用python获取邮箱邮件的设置方法
首先我们要在邮箱的设置中开通那个POP3
然后我们要导入这些包
importpoplib fromdatetimeimportdatetime importjieba importre fromemail.parserimportParser fromemail.headerimportdecode_header fromemail.utilsimportparseaddr fromlxmlimportetree
然后进行链接
name_list=[]
email='xxx@xx.com'
password='xxxxxx'
pop3_server='imap.exmail.qq.com'
#连接到POP3服务器:
server=poplib.POP3(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'182923',b'22184',...]
print(mails)
#获取最新一封邮件,注意索引号从1开始:
index=len(mails)
print(index,'2222')
resp,lines,octets=server.retr(284)
#lines存储了邮件的原始文本的每一行,
#可以获得整个邮件的原始文本:
msg_content=b'\r\n'.join(lines).decode('utf-8')
#稍后解析出邮件:
msg=Parser().parsestr(msg_content)
#print(msg)
messageObject=Parser().parsestr(msg_content)
msgDate=messageObject["date"]
print(678,msgDate)
#可以根据邮件索引号直接从服务器删除邮件:
#server.dele(index)
#关闭连接:
这里的index是全部的邮件数量,server.retr(284),从最新的开始,retr里面传你要读取的第几个,
try: GMT_FORMAT='%a,%d%b%Y%H:%M:%S+0800(CST)' new_date=datetime.strptime(msgDate,GMT_FORMAT) except: GMT_FORMAT='%a,%d%b%Y%H:%M:%S+0800' new_date=datetime.strptime(msgDate,GMT_FORMAT) name_list.append(str(new_date)) print(datetime.strptime(msgDate,GMT_FORMAT))
直接读取出来的时间是Tue,17Sep201916:21:25+0800(CST)这种形式,这里是转为为2019-09-1716:21:25这种亚子。哈哈
继续
defprint_info(msg,indent=0):
ifindent==0:
forheaderin['From','To','Subject']:
value=msg.get(header,'')
ifvalue:
ifheader=='Subject':
value=decode_str(value)
else:
hdr,addr=parseaddr(value)
name=decode_str(hdr)
value=u'%s<%s>'%(name,addr)
print('7777',name)
print('%s%s:%s'%(''*indent,header,value))
if(msg.is_multipart()):
parts=msg.get_payload()
forn,partinenumerate(parts):
print('%spart%s'%(''*indent,n))
print('%s--------------------'%(''*indent))
print_info(part,indent+1)
else:
content_type=msg.get_content_type()
ifcontent_type=='text/plain'orcontent_type=='text/html':
content=msg.get_payload(decode=True)
charset=guess_charset(msg)
ifcharset:
content=content.decode(charset)
print('%sText:%s'%(''*indent,content+'...'))
else:
print('%sAttachment:%s'%(''*indent,content_type))
这里就是读取邮件内容了
继续还有两个函数
defdecode_str(s):
value,charset=decode_header(s)[0]
ifcharset:
value=value.decode(charset)
returnvalue
defguess_charset(msg):
charset=msg.get_charset()
ifcharsetisNone:
content_type=msg.get('Content-Type','').lower()
pos=content_type.find('charset=')
ifpos>=0:
charset=content_type[pos+8:].strip()
returncharset
print_info(msg=msg)
print(name_list)
server.quit()
就这样了
总结
以上所述是小编给大家介绍的使用python获取邮箱邮件的设置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短