我想把收件箱中的一封电子邮件移到垃圾文件夹,但我不希望该电子邮件被永久删除,我希望它在垃圾箱中等待30天后才被永久删除。
1.已登录:
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login("example@gmail.com", "example")
2.在我的收件箱中获取uid列表:
mail.select("inbox")
result, data = mail.uid('search', None, "ALL")
uidList = data[0].split()
3. 处理这些电子邮件:
#processEmails returns the uids of the emails that I need
#not really important for the purposes of this question
newUidList = processEmails(uidList)
4.删除newUidList
中的邮件
for uid in newUidList:
mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')
我认为这行代码
mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')
可以解决问题(因为我在网络上找到了这个答案)。但是,既然你来问这个问题,你可能已经猜到它并没有解决。问题出现在哪里呢?
当我执行这个脚本时,邮件从收件箱中消失了,就像计划的那样。但是当我查看垃圾邮件文件夹时,什么也没有。所以我想也许它们被永久删除了。
但它们没有被删除。当我发现我的电子邮件存储空间快要满了时,我注意到了这一点,这意味着我的电子邮件还在某个地方。
我进入“所有电子邮件”文件夹,然后在那里找到了它们。
我的问题是:
1.我该如何得到我想要的结果?即按其UID将电子邮件移至垃圾邮件文件夹。
2.为什么它没有做我想它做的事情?我想要一个关于这一行
mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')
的解释。最重要的是:
感谢您的帮助 :)
IMAP/Trash
而不是\\Deleted
。可能只是Trash
。 - Torxedmail.uid('STORE', uid, '+FLAGS', '(IMAP/Trash)')
,mail.uid('STORE',b'249', '+FLAGS', '(Trash)')
。还有没有括号的:mail.uid('STORE', uid, '+FLAGS', 'IMAP/Trash')
和mail.uid('STORE',b'249', '+FLAGS', 'Trash')
。它们甚至不能将电子邮件从收件箱中取出。 - 0_jump[Gmail]/Trash
。如果不起作用,我将退出这个问题。很久没有使用IMAP语法了,而且它们也在不断变化:P - Torxed