问题描述
我正在尝试通过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()])