第十二章:email-mailbox:管理email归档-imaplib:IMAP4客户库-移动和复制消息

博客介绍了消息上传到服务器后,可使用move()或copy()方法移动或复制消息,无需下载,这些方法能处理消息ID区间。还给出示例脚本,在Example下创建新邮箱并将已读消息从INBOX复制到该邮箱,强调了检查返回码的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

13.4.12 移动和复制消息
一旦消息上传到服务器,便可以分别使用move()或copy()来移动或复制,而无须下载。与fetch()一样,这些方法可以处理消息ID区间。

import imaplib
import imaplib_connect

with imaplib_connect.open_connection() as c:
    # Find the "SEEN" messages in INBOX.
    c.select('INBOX')
    typ,[response] = c.search(None,'SEEN')
    if typ != 'OK':
        raise RuntimeError(response)
    msg_ids = ','.join(response.decode('utf-8').split(' '))

    # Create a new mailbox,"Example.Today".
    typ,create_response = c.create('Example.Today')
    print('CREATED Example.Today:',create_response)

    # Copy the messages.
    print('COPYING:',msg_ids)
    c.copy(msg_ids,'Example.Today')

    # Look at the results.
    c.select('Example.Today')
    typ,[response] = c.search(None,'ALL')
    print('COPIED:',response)

这个示例脚本在Example下创建一个新的邮箱,并把已读消息从INBOX复制到这个邮箱。

再次运行这个脚本,可以看出检查返回码的重要性。这里调用create()创建新邮箱时没有产生一个异常,而是会报告这个邮箱已经存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值