Доброго времени суток.
Есть список блокируемых хостов. Хранится в MySQL.
Правило, которое блокирует прием письма при выполнении условия.
drop message = $sender_host_address is in local black list.
condition = ${lookup mysql{UPDATE_SPAMMERS}}
UPDATE_SPAMMERS = UPDATE `spammers` set last_access_time=now() where
(INET_ATON('${quote_mysql:$sender_host_address}') & `mask`) = `net` limit 1;
Все работает хорошо ...
Но иногда один и тот же хост проскакивает.
По логу вижу, что 100 раз заблокирован и один раз из сотни проскочил.
Какие-либо "смягчающие обстоятельства" (белый список, например) не
применяются.
Выполняю с консоли exim -bh от IP того же хоста - все блокируется, как
задумано.
Почему такое поведение может быть?
SQL не вернул истину? Не должен.
Нельзя в такой краткой форме писать правило? - так срабатывает же.
P.S. Exim version 4.80.1
ОС - FreeBSD.
MySQL - 5.5
P.P.S. Заменил drop на deny - за пол дня ложных пропусков небыло.
Табличка в MySQL создавалась так.
CREATE TABLE IF NOT EXISTS spammers (
net varchar(64) NOT NULL default '',
mask varchar(64) NOT NULL default '255.255.255.0',
comment text character set koi8r,
`date` timestamp NOT NULL default CURRENT_TIMESTAMP,
`last_access_time` timestamp NULL default NULL,
UNIQUE KEY `net_ip` (`net`))
ENGINE=MyISAM DEFAULT CHARSET=koi8r;
----------------
Голуб Михаил
Компания "Инком"
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users