python收取未读邮件,已读邮件,未回复邮件

#!/usr/bin/python
# -*- coding: utf-8 -*-

import imaplib
import time
import email
import re

mailServer = "imap.163.com"

mailUser  = "aaaaaaaa@163.com"
mailPassWord = "1111111111"

def parseEmail(msg):
    # 循环信件中的每一个mime的数据块
    mailContentDict = {}
    fileList = []
    mailContent = ''
    for part in msg.walk():       
        if not part.is_multipart(): # 这里要判断是否是multipart,是的话,里面的数据是无用的,至于为什么可以了解mime相关知识。
            contenttype   =     part.get_content_type()    
            filename   =   part.get_filename()  
            if filename:
                # 下面的三行代码只是为了解码象=?gbk?Q?=CF=E0=C6=AC.rar?=这样的文件名
                h = email.Header.Header(filename)
                dh = email.Header.decode_header(h)
                fname = dh[0][0]
                encodeStr = dh[0][1]
                #将附件名转换为unicode
                fname = fname.decode(encodeStr,'ignore')
      
                data = part.get_payload(decode=True) # 解码出附件数据,然后存储到文件中
                fileDict = {}
                fileDict["fileName"] = fname
                fileDict["fileContent"] = data
                fileList.append(fileDict)               
            else:
                #不是附件,是文本内容
                mailContent =  part.get_payload(decode=True) # 解码出文本内容,直接输出来就可以了。           
    mailContentDict["mailContent"] = mailContent
    mailContentDict["fileList"] = fileList
   
    return  mailContentDict

def main():
    # login
    while 1:
        imapServer = imaplib.IMAP4(mailServer)
        imapServer.login(mailUser, mailPassWord)
        imapServer.select()
        # list items on server
        #resp, items = imapServer.search(None, "ALL")       #all Message.
        mailResp, mailItems = imapServer.search(None, "Recent")    #Message has not been read.
        #resp, items = imapServer.search(None, "Seen")      #Message has been read.
        #resp, items = imapServer.search(None, "Answered")   #Message has been answered.
        #resp, items = imapServer.search(None, "Flagged")   #Message is "flagged" for urgent/special attention.
        #resp, items = imapServer.search(None, "Deleted")   ##python无法看到已删除邮件                                                                      
        #resp, items = imapServer.search(None, "Draft")     ##python无法看到草稿箱内的邮件
        for i in mailItems[0].split():
            resp, mailData = imapServer.fetch(i, "(RFC822)")    ##读取邮件信息
            mailText = mailData[0][1]
            mail_message = email.message_from_string(mailText)
            mailContentDict = parseEmail(mail_message)
            nowTime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
            #print mail_message
           
            print mail_message['subject']
            print mail_message['from']
            print mail_message['to']
            print mailContentDict
                
        imapServer.close()
        imapServer.logout()
        time.sleep(0)
        """
         mailFile = StringIO.StringIO(mailText)
         mailMessage = rfc822.Message(mailFile)
         print message['from']
         newMail = dict(mailMessage.items())
         mailMessage.fp.read()
            #server.store(items[i], '+FLAGS', '\\Deleted')##删除指定的一份邮件
        """
if __name__ =="__main__":
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值