python - 如何在 imaplib python 中使用 UID 删除电子邮件
问题描述
我正在尝试按 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()])
推荐阅读
- square - 如何修复 Lighthouse 返回的错误:NOT_HTML。提供的页面不是方形/weebly 网站的 HTML(作为 MIME 类型)错误?
- r - $ 是一个内部泛型函数,那么 tibble 包是如何扩展它的呢?
- amazon-quicksight - Amazon Quicksight 中组的行级安全性
- html - 如何将时间线标记添加到 HTML 音频标签控件
- r - 我无法让 gam.check 功能工作
- groovy - Groovy JsonSlurper - 如何检查空值与缺失字段?
- azure - 如何使用 Terraform 清除软删除的 APIM?
- html - 我怎样才能水平居中
在一个 ? - python - 正则表达式多个括号并删除一个具有特定模式的括号
- docusignapi - 无法填充 docusign api 自定义字段