如何使用imaplib和gmail将电子邮件从“所有邮件”移动到“废纸篓”

时间:2015-02-23 14:30:07

标签: python gmail imap imaplib

我想使用imaplib和gmail从我的收件箱中删除一封电子邮件。问题是电子邮件从收件箱移动到所有邮件文件夹,但我希望它发送到垃圾箱/垃圾箱文件夹。

示例代码:

#!/usr/bin/env python

import imaplib

imap_host = 'imap.gmail.com'
imap_user = 'myemail@gmail.com'
imap_pass = 'mypass'

imap = imaplib.IMAP4_SSL(imap_host)

imap.login(imap_user, imap_pass)

status, data = imap.select('INBOX')

status, mail_id = imap.search(None, '(SUBJECT "My subject")')

status, msg_header = imap.fetch(mail_id[0], '(BODY[TEXT])')
saveFile = open('sample.txt',  'w')
saveFile.write(str(msg_header))
saveFile.close()

print "Received email body!"

# Delete the email
print "Deleting the email..."
imap.store(mail_id[0], '+FLAGS', '\\Deleted')
imap.expunge()
print "Email deleted!"

我想将电子邮件正文保存到新文件中,然后删除该电子邮件(此电子邮件地址只会有一封电子邮件)。

1 个答案:

答案 0 :(得分:0)

Gmail不允许直接从INBOX删除电子邮件。

他们在这里提到了完整的电子邮件删除行为 https://support.google.com/mail/answer/78755?hl=en

在带有删除标记的gmail imap商店中,仅适用于垃圾桶和垃圾邮件。

imap.store(mail_id [0],' + FLAGS',' \已删除')

似乎他们故意避免意外删除收件箱和自定义文件夹。

如果您要从收件箱或自定义文件夹中删除电子邮件,则需要将垃圾邮件标签应用于此类电子邮件

。存储1 + X-GM-LABELS(\ Trash)