我想使用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!"
我想将电子邮件正文保存到新文件中,然后删除该电子邮件(此电子邮件地址只会有一封电子邮件)。
答案 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)