×

文件夹 邮件 移动 复制 删除

使用Python将邮件移至自定义文件夹

鹭岛小千 鹭岛小千 发表于2021-06-23 20:44:06 浏览742 评论0

抢沙发发表评论

【问题描述】使用Python如何将邮件移至自定义文件夹呢?

以下图为例,

18-1.png

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)


运行结果:

18-2.png


【注意事项】

移动邮件,是一个多步骤的过程,对于邮箱来说,是一件刺手的事情。使用move方法,报错如下:

imapclient.exceptions.CapabilityError: Server does not support MOVE capability

18-3.png


打赏码.png


【参考资料】

  1. IMAPClient Class

  2. IMAP MOVE extension (imapmove)

  3. IMAP: how to move a message from one folder to another

  4. 使用Python库在IMAP中移动邮件

  5. python通过imap批量删除指定发件人的邮件

  6. Python-邮件批量处理-已读状态或移动

  7. rfc6851


群贤毕至

访客