python未读邮件_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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Python 的 `imaplib` 模块来下载未读邮件。首先,你需要连接到你的邮箱服务器,并且登录到你的账户。然后,你可以使用 `search` 方法来查找未读邮件的标识符。接下来,使用 `fetch` 方法来获取邮件的内容并下载附件(如果有的话)。 下面是一个示例代码: ```python import imaplib # 连接到邮箱服务器 imap_server = imaplib.IMAP4_SSL('imap.example.com') # 登录到账户 email = 'your_email@example.com' password = 'your_password' imap_server.login(email, password) # 选择邮箱文件夹 folder = 'INBOX' imap_server.select(folder) # 查找未读邮件 status, response = imap_server.search(None, 'UNSEEN') unread_ids = response[0].split() for email_id in unread_ids: # 获取邮件内容 status, response = imap_server.fetch(email_id, '(RFC822)') email_data = response[0][1] # 处理邮件内容,可以使用 email 模块来解析 # 关闭连接 imap_server.logout() ``` 在代码中,你需要将 `'imap.example.com'` 替换为你的邮箱提供商的 IMAP 服务器。同时,将 `'your_email@example.com'` 和 `'your_password'` 替换为你的邮箱地址和密码。 请注意,这只是一个简单的示例代码,你可能需要根据自己的需求进行调整和扩展。另外,你可能还需要安装 `email` 模块来解析邮件内容。你可以使用 `pip` 命令来安装它: ``` pip install email ``` 希望这可以帮助到你!如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值