1

У меня проблема с обратным рассеянием для случайно сгенерированных поддельных адресов в домене с ловушкой.

Поддельный псевдоним использует схему, используя egrep с регулярным выражением

^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*

в моих списках maildir все нежелательные обратные рассылки и, к счастью, ни один адрес, использующий эту схему, фактически не используется.

Тем не менее, procmail убежден, что он не совпадает.

:0hD:
* ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*
!spam

procmail: No match on "^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*"

Я не могу заставить procmail интерпретировать регулярное выражение, как egrep (и другие инструменты, использующие регулярные выражения).

Что я делаю неправильно?

Я обнаружил, что по умолчанию procmail игнорирует регистр, поэтому я добавил "D" в рецепт. Но я не нашел ни одного примера с использованием [AZ] в procmail-рецептах. Я пытаюсь что-то невозможное?

1 ответ1

2

Регулярный диалект Procmail не поддерживает оператор повторения {m, n} . Вам просто нужно будет прописать шаблон от руки (возможно, использовать переменную, если она становится слишком массивной).

:0D
* ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9][0-9]([0-9]([0-9][0-9]?)?)?@example\.org
!spam

Кроме того, вы не должны использовать блокировку в рецепте пересылки, завершающий подстановочный знак бесполезен, а флаг h используется по умолчанию; поэтому я достал эти вещи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .