首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在imaplib python中使用UID删除电子邮件

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

Stack Overflow用户
提问于 2020-11-11 22:22:48
回答 1查看 348关注 0票数 0

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

这就是我要做的:

1.连接到电子邮件

代码语言:javascript
运行
复制
imap = imaplib.IMAP4_SSL('imap-mail.outlook.com')
imap.login('my_email@hotmail.com', "password")

2.从邮件中获取UID

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
print(messages)

我得到以下输出:

代码语言:javascript
运行
复制
[{
  'uid': ('OK', [b'1 (UID 111)']), 
  'uid': ('OK', [b'2 (UID 114)'])
}]

4.如何删除?

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

我试过了,但没有成功...

代码语言:javascript
运行
复制
for m in messages:
    imap.store(m['uid'],'+X-GM-LABELS', '\\Trash')

我得到以下错误:

代码语言:javascript
运行
复制
TypeError: can't concat tuple to bytes
EN

Stack Overflow用户

发布于 2020-11-12 12:41:34

代码语言:javascript
运行
复制
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

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64788265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档