如何解决如何仅移动带有附件的邮件?
我有以下代码使用邮箱包将文件夹中的所有电子邮件移动到“旧”文件夹:
with MailBox('mail.yu.nl').login('75090058@yu.nl','yu',initial_folder='INBox') as mailBox:
mailBox.move(mailBox.fetch(),'InBox.Old')
现在,我只想移动带有附件的邮件。
我尝试了以下方法:
resp,items = imap.uid("search",None,'All')
resp,data = imap.uid('fetch',msg_uid,"(RFC822)")
然而,没有成功..
请帮忙!
解决方法
我很好奇。为什么您认为没有或全部只匹配带有附件的邮件?
正如@triplee 所说,附件没有真正的定义,因此您必须自己修改定义。但是你可以近似,例如移动所有多部分消息,或所有带有图像部分的消息,所有带有 PDF 部分的消息或正文部分已明确标记为附件的所有消息(这种情况不时发生)。搜索关键字分别为header content-type multipart
、header content-type image/
、header content-type application/pdf
和header content-disposition attachment
。
这四个示例中的第一个可以很好地工作,其他三个可以在某些服务器上工作,但远非全部,因为 the specification says "…has a header with…",这可能意味着“在消息头中”或“在消息头中”消息头或每个部分的头”。祝你的服务器好运。
您也可以use or
to join several of the conditions。
RFC3501:车身结构
imap_tools 库无法解析它。你可以尝试实现它:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。