微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何仅移动带有附件的邮件?

如何解决如何仅移动带有附件的邮件?

我有以下代码使用邮箱包将文件夹中的所有电子邮件移动到“旧”文件夹:

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 multipartheader content-type image/header content-type application/pdfheader content-disposition attachment

这四个示例中的第一个可以很好地工作,其他三个可以在某些服务器上工作,但远非全部,因为 the specification says "…has a header with…",这可能意味着“在消息头中”或“在消息头中”消息头或每个部分的头”。祝你的服务器好运。

您也可以use or to join several of the conditions

,

RFC3501:车身结构

imap_tools 库无法解析它。你可以尝试实现它:

https://github.com/ikvk/imap_tools/issues/100

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。