【问题描述】使用Python如何获取收件箱指定日期的邮件清单呢?
比如下图2021/05/05的两封来信:
【小千解答】关键是调用imapclient库的search方法,设置查询条件(指定日期)参数,最后使用email库解析邮件头信息。

示例代码如下:
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'])运行结果:


【参考资料】
图书《AUTOMATE THE BORING STUFF WITH PYTHON》