【问题标题】:add a custom RFC822 header via IMAP?通过 IMAP 添加自定义 RFC822 标头?
【发布时间】:2011-02-04 06:30:13
【问题描述】:

是否有一种简单的方法可以使用 imaplib 将自定义 RFC822 标头添加到 IMAP 服务器上的邮件?

我正在编写一个基于 python 的程序来过滤我的 IMAP 邮件存储。当我使用 Procmail 执行此操作时,我可以选择添加标题。但似乎没有办法通过 Python imap 实现来做到这一点。

具体来说,我想添加一个自定义标题,例如:

X-VY32-STATUS: Very Cool

让它出现在邮件标题中:

 To: vy32@stackoverflow.com
 From: Yo@mama.com
 Subject: Test Message
 X-VY32-STATUS: Very Cool

 The regular message is down here.

【问题讨论】:

    标签: python imap imaplib


    【解决方案1】:

    更好的选择是使用称为关键字的自定义服务器标志

    关键字由服务器实现定义。关键字不以“\”开头。服务器可以允许客户端在邮箱中定义新的关键字。

    要将 myflag 添加到您可以使用的消息中

    STORE number +FLAGS (myflag) 
    

    搜索:

    SEARCH KEYWORD myflag
    

    请记住,某些服务器不允许自定义标志。

    【讨论】:

    • 但我不确定 Apple Mail 客户端是否允许我访问标志。
    • 不幸的是,Apple Mail 客户端不允许我访问这些标志。但是,您是对的,这是正确的方法。
    【解决方案2】:

    我认为RFC 2060 不允许编辑收到的邮件标题。如果您想编辑邮件响应标头,可以使用 email 包来完成。

    【讨论】:

    • 所以我唯一的选择是下载标头,修改它,然后发回?
    • Procmail 是一个邮件传递代理。 IMAP 协议用于从邮件服务器传输邮件,而不是用于在服务器上编辑邮件。
    • 是的,我知道 procmail 是一个投递代理。但我们越来越多地使用只能通过 IMAP 访问的邮件服务器。如果某个地方的客户端上运行的 python 脚本具有类似 procmail 的功能,那就太好了。有一些系统可以做到这一点(不是特别好,我可能会补充)。现在他们没有能力更新邮件标题。会有一个很好的方法来做到这一点。您可以通过 IMAP 下载整个消息,然后将其写回,但这不是很有效。
    猜你喜欢
    • 2018-02-15
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多