Dovecot
Dovecot Sieve:將消息的一部分儲存為變數
我需要檢索消息的某些部分,看起來像
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
不包含消息中的內容。
發現身體測試肯定不適用於匹配變數:
https://www.rfc-editor.org/rfc/rfc5173#section-6
與“body”一起使用的萬用字元表達式不受中描述的副作用的影響
$$ VARIABLES $$. 也就是說,他們不得設置匹配變數( $ {1}, $ {2}…) 到匹配模式中萬用字元序列對應的輸入值。
MIME Sieve 擴展可能會提供所需 的https://www.rfc-editor.org/rfc/rfc5703或
pipe
向腳本發送消息並在那里處理它,這就是我在我的情況下所做的。