【问题描述】使用Python如何将邮件移至自定义文件夹呢?
以下图为例,
1、如何创建自定义文件夹“阿里云”?
2、如何将2021/03/27-/03/30的收件箱邮件移动到“阿里云”文件夹呢?
【小千解答】使用imapclient库的IMAPClient类的若干方法。
示例代码如下:
import imapclient import datetime as dt with imapclient.IMAPClient('imap.163.com') as xqmail: xqmail.login('shaoqian9527@163.com','xqoffice.cn') xqmail.id_({'name':'IMAPClient','version':'2.2.0'}) foldername = '阿里云' if not xqmail.folder_exists(foldername): xqmail.create_folder(foldername) xqmail.select_folder('INBOX',False) mids = xqmail.search([u'SINCE',dt.date(2021,3,27),u'BEFORE',dt.date(2021,3,31)]) for mid in mids: mail = xqmail.fetch(mid,['BODY.PEEK[]']) # xqmail.move(mail,foldername) 行不通 xqmail.copy(mail,foldername) xqmail.set_flags(mail,b'\\Deleted') xqmail.expunge(mail)
运行结果:
【注意事项】
移动邮件,是一个多步骤的过程,对于邮箱来说,是一件刺手的事情。使用move方法,报错如下:
imapclient.exceptions.CapabilityError: Server does not support MOVE capability
【参考资料】