Мой сервер входящей почты проверяет SPF и соответственно добавляет строку в заголовки. Однако иногда предыдущие серверы добавляют похожие заголовки, поэтому имеется несколько заголовков Received-SPF.
Received-SPF: Softfail...
Received: from ...
Received: by ...
Sender: ...
Received: by ...
Received: by ...
Received: by ...
Received: by ...
Received-SPF: pass ...
Received: by ...
У меня есть фильтр procmail для сортировки входящей почты в соответствии с его статусом SPF, но в настоящее время он не учитывает, где в заголовках оно появляется.
Можно ли составлять правила с учетом того, где в заголовках появляется строка? Или для этого подходят другие инструменты?
Есть ли способ отличить заголовки, добавленные сервером входящей почты, над первым (последним добавленным) заголовком Received, и заголовками, добавленными другим сервером.
Procmail может выполнять сопоставление нескольких строк. В отличие от многих других вариантов регулярных выражений, в Procmail встроенный $
обозначает новую строку между двумя строками. Как именно определить правильный Received-SPF:
заголовок явно зависит от топологии вашей сети, но что-то вроде
:0
* ^Received-spf: pass.*$Received: from .* by yourgateway
... whatever
... предполагая, что ваш входящий MX (здесь, yourgateway
) добавляет Received
сначала заголовок, затем добавляет Received-SPF
до этого. Может быть и наоборот; без заголовков примеров мы не можем знать. Также между этими двумя возможны дополнительные заголовки, но, вероятно, это то, что мы можем игнорировать.