要删除电子邮件,就向 IMAPClient 对象的 delete_messages()方法传入一个消息
UID 的列表。这为电子邮件加上\Deleted 标志。调用 expunge()方法,将永久删除当前选中的文件夹中带\Deleted 标志的所有电子邮件。请看下面的交互式环境的例子:
>>> imapObj.select_folder(‘INBOX’, readonly=False)
>>> UIDs = imapObj.search([‘ON 09-Jul-2015’])
>>> 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 命令。