Python为什么uid函数不删除我发送的电子邮件?

2024-05-16 01:42:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,我尝试使用imaplib。我想删除从我的hotmail帐户发送的特定电子邮件。我发现了这封邮件,代码没有返回错误但邮件没有被删除。在

mail = imaplib.IMAP4_SSL('imap-mail.outlook.com')
mail.login('XXXXX@hotmail.com', 'XXXXX')
mail.select('Sent')
typ, data = mail.search(None, 'ALL')
control = 0
tam = len(data[0].split())
while control < tam:
    typ, data = mail.fetch(tam - control, '(RFC822)')
    if str(data).find("My Subject") != -1: #works
        mail.uid('STORE', str(tam - control) , '+FLAGS', '(\Deleted)') # doesn't work
        mail.expunge() # doesn't work
    control = control + 1

有什么想法吗?提前谢谢!在


Tags: comdata邮件mail帐户controlworkimaplib
1条回答
网友
1楼 · 发布于 2024-05-16 01:42:44

^{}需要一个消息UID,而您似乎在使用消息编号。试试这个:

mail.store(str(tam - control), '+FLAGS', '\\Deleted')
mail.expunge()

请注意,IMAP4邮件的编号会随着邮箱的更改而变化;尤其是,在EXPUNGE命令执行删除操作后,剩余的邮件将重新编号。在

相关问题 更多 >