【问题描述】使用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》