代码之家  ›  专栏  ›  技术社区  ›  JackTheKnife

Dovecot Sieve-如何将部分消息作为变量检索

  •  0
  • JackTheKnife  · 技术社区  · 6 年前

    我需要检索邮件的某些部分

    Subject: Test message
    Message-Id: <2788db2f-b5c3-4b8c-881e-362c3df4f915@server.local>
    Mime-Version: 1.0
    Content-Type: multipart/report; boundary="----=_Part_fba0c199dfcd4d60ae506b37a6320a84"; report-type=notification
    To: adam@test.local
    Date: Mon, 17 Sep 2018 16:21:45 -0400 (EDT)
    From: postmaster@server.local
    
    
    ------=_Part_fba0c199dfcd4d60ae506b37a6320a84
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit
    
    BTW, this is the correct notification ... it should be "failed" not "failure".
    ------=_Part_fba0c199dfcd4d60ae506b37a6320a84
    Content-Type: message/notification
    Content-Transfer-Encoding: 7bit
    
    Final-Recipient: rfc822; eve@test.local
    Original-Message-ID: <06dbfc12-57a5-49bd-84bd-a24bc3ba1e42@fake.cernerasp>
    
    ------=_Part_fba0c199dfcd4d60ae506b37a6320a84—
    

    举个例子,我需要抓住你想要的东西 Final-Recipient: rfc822; Original-Message-ID: 并将它们存储为变量

    我试过做类似的事情

    if body :raw :contains ["Original-Message-ID:"] {
      set "Original-Message-ID" "${0}";
    }
    

    但变量设置为 Original-Message-ID 消息中不包含它后面的内容。

    1 回复  |  直到 6 年前
        1
  •  0
  •   JackTheKnife    6 年前

    结果发现,身体测试肯定不会与匹配变量一起工作:

    https://tools.ietf.org/html/rfc5173#section-6

    与“body”一起使用的通配符表达式不受副作用的影响 (${1},${2}…)到对应于通配符的输入值

    MIME筛扩展可能会提供所需的内容 https://tools.ietf.org/html/rfc5703 pipe 消息到一个脚本并在那里处理它,我在我的情况下做了什么。