exim filter regex discard rule

Мы пытаемся отбросить все электронные письма с совпадающей темой, пример темы:

Тема: DOMAIN.COM Оповещение: ИМЯ Мы НЕ получили ваш платеж

Мы пытаемся сопоставить любой домен, Предупреждение и «Мы НЕ получили ваш платеж»

Используя следующий фильтр:

if
 $header_subject: matches "^(?!:\\\\/\\\\/)([a-zA-Z0-9-_]+\\\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+\\\\.[a-zA-Z]{2,11}?\\$"
 and $header_subject: contains "Alert"
 and $header_subject: contains "We have NOT received your payment"
then
 save "/dev/null" 660
endif

Он не соответствует, однако при тестировании я проверил регулярное выражение на соответствие домену и он работает, но при добавлении дополнительных правил фильтр не работает.

0
задан 7 January 2019 в 17:00
1 ответ

Это отклоняет письма с темой, соответствующей "Оповещение DOMAIN.COM: ИМЯ Мы НЕ получили ваш платеж"

(где DOMAIN.COM может быть любым доменом)

if $h_subject matches "^[A-Za-z0-9-_]+\\\\.[a-zA-Z]\\\\b.+Alert.+We have NOT received your payment\\$"
then
  seen finish
endif

Примечание. Вы можно проверить влияние системного фильтра на доставку с помощью:

exim -bF test_filter <test_message

Ваше первое регулярное выражение содержит \\ $ , которое соответствует концу строки, поэтому оно соответствует только в том случае, если строка домена находится в конце темы.

0
ответ дан 5 December 2019 в 04:36

Теги

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