当前位置:嗨网首页>书籍在线阅读

24-删除电子邮件

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

18.5.7 删除电子邮件

要删除电子邮件,就向 IMAPClient 对象的 delete_messages() 方法传入一个消息UID的列表。这为电子邮件加上\Deleted标志。调用 expunge() 方法,将永久删除当前选中的文件夹中带\Deleted标志的所有电子邮件。请看下面的交互式环境的例子:

❶ >>> imapObj.select_folder('INBOX', readonly=False)
❷ >>> UIDs = imapObj.search(['ON 09-Jul-2019'])
 >>>  UIDs
 [40066]
 >>>   imapObj.delete_messages(UIDs)
❸ {40066: ('\\Seen', '\\Deleted')}
 >>> imapObj.expunge()
 ('Success',  [(5452,  'EXISTS')])

这里,我们调用了 IMAPClient 对象的 select_folder() 方法,传入 'INBOX' 作为第一个参数,选择了收件箱。我们也传入了关键字参数 readonly=False ,这样我们就可以删除电子邮件❶了。我们搜索收件箱中的特定日期收到的消息,将返回的消息ID保存在UIDs中❷。调用 delete_message() 并传入UIDs以返回一个字典,其中每个键-值对是一个消息 ID 和消息标志的元组,它现在应该包含\Deleted标志❸。然后调用 expunge() ,永久删除带\Deleted标志的邮件。如果清除邮件没有问题,就返回一条成功信息。请注意,一些电子邮件提供商,如Gmail,会自动清除用 delete_messages() 删除的电子邮件,而不是等待来自IMAP客户端的 expunge 命令。