Создайте регулярное выражение Perl для "не совпадающих" определенных писем - PullRequest
1 голос
/ 26 апреля 2019

Чтобы помочь в борьбе со спамом, я настроил несколько «глобальных фильтров электронной почты» для домена в cPanel, однако теперь эти фильтры переопределяют настройку cPanel «Default Address = Discard», которая у меня есть!Поэтому я сейчас пытаюсь воссоздать правило, чтобы электронные письма, не являющиеся пользователями-нежелательными@mydomain.co.uk (спам), отбрасывались, например.

Email To (соответствует регулярному выражению PERL):

Если это не соответствует Джону ИЛИ Питеру ИЛИ luke @ mydomain.co.uk

Действие:

Сброс

* Таким образом, john123@mydomain.co.uk будет МАТЧи будут отклонены, НО

john@mydomain.co.uk или peter@mydomain.co.uk или luke@mydomain.co.uk НЕ будут совпадением и будут приняты для доставки.

Я надеюсь, что вы можете создать это регулярное выражение для "PERL" для меня.

Я уже пробовал это, но это не работает -

(?!.*(john|peter|luke@mydomain.co.uk))

1 Ответ

2 голосов
/ 26 апреля 2019
^(?!(?:john|peter|luke)\@mydomain\.co\.uk\z)

Это соответствует всему, кроме

  • john@mydomain.co.uk
  • peter@mydomain.co.uk
  • luke@mydomain.co.uk

^(?!(?:john|peter|luke)\@(?:local\.)?mydomain\.co\.uk\z)

Это соответствует всему, кроме

  • john@mydomain.co.uk
  • peter@mydomain.co.uk
  • luke@mydomain.co.uk
  • john@local.mydomain.co.uk
  • peter@local.mydomain.co.uk
  • luke@local.mydomain.co.uk

Вы можете сделать это без учета регистра, обернув целое в (?i:...).

...