国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特后旗| 宾阳县| 年辖:市辖区| 澄城县| 衡南县| 通榆县| 大姚县| 西城区| 长海县| 岱山县| 罗源县| 南通市| 阳朔县| 仪征市| 定襄县| 鲁甸县| 神农架林区| 望城县| 江达县| 安丘市| 岚皋县| 赤水市| 桦川县| 黎平县| 明水县| 莱芜市| 景洪市| 宝鸡市| 滦平县| 苏州市| 尚志市| 兴和县| 如东县| 河东区| 渑池县| 阿瓦提县| 惠州市| 化隆| 大关县| 通渭县| 浪卡子县|