我正在尝试通过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
发布于 2020-11-12 12:41:34
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://stackoverflow.com/questions/64788265
复制相似问题