×

收件箱 指定日期 邮件清单 imapclient email

使用Python获取收件箱指定日期的邮件清单

鹭岛小千 鹭岛小千 发表于2021-06-02 23:01:59 浏览830 评论0

抢沙发发表评论

【问题描述】使用Python如何获取收件箱指定日期的邮件清单呢?

比如下图2021/05/05的两封来信:13-1.png

【小千解答】关键是调用imapclient库的search方法,设置查询条件(指定日期)参数,最后使用email库解析邮件头信息。

13-2.png


示例代码如下:

import imapclient
import datetime
import email
import email.parser
import email.policy

with imapclient.IMAPClient('imap.163.com') as xqmail:
    xqmail.login('shaoqian9527@163.com','xqoffice.cn')
    xqmail.id_({'name':'IMAPClient','version':'2.2.0'})
    xqmail.select_folder('INBOX',True)
    mids = xqmail.search([u'ON',datetime.date(2021,5,5)])
    for idx,mid in enumerate(mids):
        mail = xqmail.fetch(mid,['BODY[]'])
        raw_msg = mail[mid][b'BODY[]']
        msg = email.parser.BytesParser(policy=email.policy.default).parsebytes(raw_msg)
        print(str(idx + 1) + '#')
        print('发件人:' + msg['From'])
        print('收件人:' + msg['To'])
        print('主题:' + msg['Subject'])
        print('日期:' + msg['Date'])


运行结果:

13-3.png


打赏码.png


【参考资料】

  1. IMAPClient Class

  2. 图书《AUTOMATE THE BORING STUFF WITH PYTHON》

  3. 通过IMAP收邮件

  4. 使用pop3和imap接收邮件并解析

  5. python3读取解析邮件内容

  6. RFC3501(imp4协议)中文版


群贤毕至

访客