1

Тема: Поиск отрицания в REGEXP

Тема: поиск регулярного выражения.
Не смог совладать. Смысл в том, чтобы правило добавить в постфикс в REGEXP для отбрасывания релеев которые представились mail.bbbrucable.net но они не шлют с адреса которые 88.99.88.99 а шлют с любого другого адреса.

PERL это может. Но я не дошел пока как это правило верно составить. Прошу помощи.

#!/usr/bin/perl
my $text = '
Received: from relayhq.fluxsdsdsys.net ([172.24.46.14]) by EVS2.central.fluxys.int with Microsoft SMTPSVC(6.0.3790.2499);
        Wed, 17 Dec 2008 17:37:13 +0100
Received: from pc ([89.137.143.128]) by relayhq.fluxysffdfd.net with InterScan
        Message Security Suite; Wed, 17 Dec 2008 17:37:12 +0100
Received: from [89.137.143.128] by mail.bbbrucable.net; Wed, 17 Dec 2008
        04:37:11 -1200
';
my @text = split /\n/, $text;
foreach (@text)
{
        if (/^Received\: from \[[^88]+\.[^99]+\.[^88]+\.[^99]+\] by mail\.bbbrucable\.net.*$/i)
        {
                print $1;
                exit;
        }
        #print $_;
}
exit;

2

Re: Поиск отрицания в REGEXP

Не знаю, а актуально ли еще, но я бы сделал так:

main.cf

header_checks = regexp:/usr/local/etc/postfix/header_checks

header_checks

/^(?!(Received.*88\.99\.88\.99.*mail\.bbbrucable\.net)).*$/i REJECT Wrong sender IP

не проверял на постфиксе, но регексп полжен быть правильный