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; и Идентификатор исходного сообщения: и сохранить их как переменные

Я пытался сделать что-то вроде

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

, но переменная, заданная как Исходный-идентификатор-сообщения , не содержит того, что стоит после нее в сообщении.

0
задан 19 September 2018 в 17:57
1 ответ

Выяснилось, что основной тест определенно не будет работать с переменными соответствия:

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

Подстановочные выражения используемые с «телом» освобождаются от побочных эффектов описано в [ПЕРЕМЕННЫЕ]. То есть они НЕ ДОЛЖНЫ устанавливать переменные соответствия ($ {1}, $ {2} ...) к входным значениям, соответствующим подстановочному знаку последовательности в согласованном шаблоне.

Расширения MIME Sieve, вероятно, предоставят то, что необходимо https://tools.ietf.org/html/rfc5703 или pipe сообщение сценарию и обработайте его там, что я сделал в моем случае.

0
ответ дан 5 December 2019 в 05:17

Теги

Похожие вопросы