繁体   English   中英

如何在imaplib python中使用UID删除电子邮件

[英]How to delete emails using UID in imaplib python

我正在尝试通过 UID 删除电子邮件。 这是我正在访问的 hotmail 电子邮件帐户。

这是我在做什么:

1. 连接到电子邮件

imap = imaplib.IMAP4_SSL('imap-mail.outlook.com')
imap.login('my_email@hotmail.com', "password")

2. 从邮件中获取 UID

resp, _ = imap.select('Inbox')
mbox_response, msgnums = imap.search( None,'FROM', 'email@sender.com')

messages = [] #Appending UID to this dictionary

for num in msgnums[0].split():
    msg_uid = imap.fetch(num, 'UID')
    messages.append({'uid':imap.fetch(num, 'UID')})

3. 打印 UID

print(messages)

我得到以下输出:

[{
  'uid': ('OK', [b'1 (UID 111)']), 
  'uid': ('OK', [b'2 (UID 114)'])
}]

4. 如何删除?

如何使用这些 UID 删除特定消息?

我试过这个没有成功...

for m in messages:
    imap.store(m['uid'],'+X-GM-LABELS', '\\Trash')

我收到以下错误:

TypeError: can't concat tuple to bytes
from imap_tools import MailBox
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX/test') as mailbox:
    # DELETE all messages from current folder (INBOX/test)
    mailbox.delete([msg.uid for msg in mailbox.fetch()])

https://github.com/ikvk/imap_tools

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM