использование регулярных выражений в exim-фильтрации

Я пытаюсь создать eximфильтр для блокировки спам-сообщений, содержащих

"85% OFF"

в строке темы. Это пустое место, затем любые две цифры, затем знак процента, пустое место и слово OFF во всех шапках. Вот что я написал:

# Exim filter if $header_subject: contains " \\d{2}% OFF" then fail text "no spam please" seen finish endif 

Однако это не работает и позволяет сопоставлять сообщения, хотя проходит тестирование regex101 . Что мне не хватает? Какой правильный синтаксис?

One Solution collect form web for “использование регулярных выражений в exim-фильтрации”

Я временно заменил свой .forward и подтвердил, что он не работает.

Есть две проблемы.

  1. contains выполнение подстроки и не понимает регулярные выражения. Для регулярных выражений вы хотите matches а не contains .

  2. Класс символов \d PCRE-типа выглядит сломанным, как и синтаксис {N} ! Я пробовал всевозможные комбинации. Единственный синтаксис, который работал, был [0-9][0-9] . Даже [0-9]{2} не работал, и ни [0-9]\\{2\\} , ни \\d\\d . (Я запускаю версию 4.72.) Редактирование: Вот почему: Цитаты не должны использоваться в регулярных выражениях в файлах фильтра Exim, за исключением случаев, когда регулярные выражения содержат whitspace. Однако обратные косые черты должны быть удвоены даже в нерегулярных регулярных выражениях. В цитированных регулярных выражениях они должны быть снова удвоены: $header_subject: matches "\\\\d{2}% OFF" . Подсчитайте их: четыре обратные косые черты.

Проверьте свой скрипт с помощью /usr/sbin/exim -bF <scriptfile> -f <sender> . Тестовое сообщение должно быть отправлено на стандартный ввод (например, перенаправлено из файла).

Для тестирования Subject: обработка, он может содержать только эту строку заголовка и ничего больше. Столица F в -bF должна разрешить обработку вашей команды fail которая отключена, если вы используете -bf .

  • Обойти некоторые домены в exim $ message_body, если условие
  • Как настроить exim для использования SMTP-сервера моего ISP (в системе, отличной от Debian)?
  • Постфикс останавливается непрерывно
  • Входящая спам-почта в exim-почтовом сервере
  • Как установить Exim с TLS на сервере с несколькими доменами?
  • Как выполнить вывод команды exim exim в терминале?
  • Спам-сообщения появляются в очереди exim, но нет пользователей электронной почты для этого домена
  • Exim4: как заблокировать список адресов получателей
  • Exim получение вложений или пересылка электронной почты в очереди
  • Exim4 пересылает все электронные письма типа домена на конкретный адрес электронной почты
  • Запрет доступа к файлу Daemon не должен
  • Linux и Unix - лучшая ОС в мире.