Я пытаюсь получить некоторые исключения в нашем регулярном выражении sendmail для R command. Следующая конфигурация & регулярное выражение работы:sendmail R регулярное выражение команды, добавляющее исключения в Kcheckaddress regex -a @ MATCH
LOCAL_CONFIG
#
Kcheckaddress regex [email protected]
[a-zA-Z_0-9.-]+<@[a-zA-Z_0-9-]+?\.+[a-zA-Z_0-9.-]+?\.(us|info|to|br|bid|cn|ru)
LOCAL_RULESETS
SLocal_check_mail
# check address against various regex checks
R$* $: $>Parse0 $>3 $1
R$+ $: $(checkaddress $1 $)
[email protected] $#error $: "553 Your Domain is Blocked for Unsolicited Mail"
Таким образом, мы блокируем [email protected] но не [email protected] Я хотел бы добавить исключения для городов и школ, чтобы разрешить [email protected] и user @ subdomain. [State] .us. (обратите внимание, что [состояние] означает 1 из 50 состояний, включая DC).
Это регулярное выражение не работает (с помощью CA для Калифорнии в качестве теста):
(?!.*\@ci\..+?\.us$)(?!.*\@*\..+?\.ca.us$)([a-zA-Z_0-9.-][email protected][a-zA-Z_0-9-]+?\.+[a-zA-Z_0-9.-]+?\.(us)$)
Я получаю эту ошибку:
sendmail -bt
/etc/mail/sendmail.cf: line 199: pattern-compile-error: Invalid preceding regular expression
Что меня удивляет, чтобы получить регулярное выражение, которое делает работа, для которой требуются ведущие пробелы, и я не уверен, что делает функция части +<@
регулярного выражения? Что здесь меньше (<)? Нужно ли добавлять его в большее регулярное выражение?
Редактировать: Я уверен, что команды sendmail's R & K не поддерживают негативный внешний вид. Поэтому, если кто-то может помочь переписать регулярное выражение в дружественном формате, я был бы благодарен!