国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現讀取郵箱中的郵件功能示例【含文本及附件】

2020-02-16 02:00:58
字體:
來源:轉載
供稿:網友

本文實例講述了Python實現讀取郵箱中的郵件功能。分享給大家供大家參考,具體如下:

#-*- encoding: utf-8 -*-import sysimport localeimport poplibfrom email import parserimport emailimport string# 確定運行環境的encoding__g_codeset = sys.getdefaultencoding()if "ascii"==__g_codeset:  __g_codeset = locale.getdefaultlocale()[1]#def object2double(obj):  if(obj==None or obj==""):    return 0  else:    return float(obj)  #end if#def utf8_to_mbs(s):  return s.decode("utf-8").encode(__g_codeset)#def mbs_to_utf8(s):  return s.decode(__g_codeset).encode("utf-8")#host = 'pop.exmail.qq.com'username = 'user1@xxxx.cn'password = 'password'pop_conn = poplib.POP3_SSL(host)pop_conn.user(username)pop_conn.pass_(password)#Get messages from server:# 獲得郵件messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]#print messages#print "--------------------------------------------------"# Concat message pieces:messages = ["/n".join(mssg[1]) for mssg in messages]#print messages#Parse message intom an email object:# 分析messages = [parser.Parser().parsestr(mssg) for mssg in messages]i = 0for index in range(0,len(messages)):  message = messages[index];  i = i + 1;  subject = message.get('subject')  h = email.Header.Header(subject)  dh = email.Header.decode_header(h)  subject = unicode(dh[0][0], dh[0][1]).encode('utf8')  mailName = "mail%d.%s" % (i, subject)  f = open('%d.log'%(i), 'w');  print >> f, "Date: ", message["Date"]  print >> f, "From: ", email.utils.parseaddr(message.get('from'))[1]  print >> f, "To: ", email.utils.parseaddr(message.get('to'))[1]  print >> f, "Subject: ", subject  print >> f, "Data: "  j = 0  for part in message.walk():    j = j + 1    fileName = part.get_filename()    contentType = part.get_content_type()    mycode=part.get_content_charset();    # 保存附件    if fileName:      data = part.get_payload(decode=True)      h = email.Header.Header(fileName)      dh = email.Header.decode_header(h)      fname = dh[0][0]      encodeStr = dh[0][1]      if encodeStr != None:        fname = fname.decode(encodeStr, mycode)      #end if      fEx = open("%s"%(fname), 'wb')      fEx.write(data)      fEx.close()    elif contentType == 'text/plain':# or contentType == 'text/html':      #保存正文      data = part.get_payload(decode=True)      content=str(data);      if mycode=='gb2312':        content= mbs_to_utf8(content)      #end if      nPos = content.find('降息')      print("nPos is %d"%(nPos))      print >> f, data    #end if  #end for  f.close()#end forpop_conn.quit()

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪湖市| 邵阳市| 清流县| 航空| 宁武县| 台州市| 禹城市| 乌鲁木齐县| 汉川市| 清水河县| 天门市| 宁化县| 布尔津县| 台州市| 天台县| 汝州市| 邵东县| 胶州市| 武宁县| 潢川县| 安丘市| 永康市| 阿城市| 神池县| 馆陶县| 合江县| 巧家县| 大姚县| 彰武县| 菏泽市| 同德县| 雅江县| 姚安县| 兰考县| 肇庆市| 汕头市| 奉节县| 鱼台县| 东阳市| 福泉市| 新沂市|