Python 3:通过uid(imaplib)将电子邮件移至垃圾箱

时间:2017-10-09 09:13:53

标签: python python-3.x email imaplib

我想将收件箱中的电子邮件移至垃圾箱文件夹,我不希望电子邮件被永久删除,我希望它能够在垃圾箱中等待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)')
  3. 作出解释

    最重要的是......

    感谢您的意见:)

1 个答案:

答案 0 :(得分:3)

我找到了答案!

因此,对于有同样问题的人,我发现了如何通过uid将您的电子邮件移至垃圾箱。回到我的帖子,我应该放mail.uid('STORE', uid, '+X-GM-LABELS', '\\Trash')而不是mail.uid('STORE',uid, '+FLAGS', '(\\Deleted)')

你有它:)