>А не подскажите каким ПО Вы это делаете?Штатные АЦЛ экзима
warn set acl_mCNT = 0
warn condition = ${if eq{$sender_helo_name}{}{yes}{no}}
set acl_mCNT = ${eval:$acl_mCNT+25}
warn condition = ${if eq{$sender_address}{}{yes}{no}}
set acl_mCNT = ${eval:$acl_mCNT+10}
warn condition = ${if !eq{$sender_helo_name}{$sender_host_name}{yes}{no}}
set acl_mCNT = ${eval:$acl_mCNT+10}
warn condition = ${if >{${strlen:$sender_address}}{30}{yes}{no}}
set acl_mCNT = ${eval:$acl_mCNT+15}
.....
.....
.....
warn set acl_mSEC = ${eval:$acl_mCNT}s
delay = $acl_mSEC
defer delay = 60s
message = 450 TEMPFAIL : System overload
condition = ${if ge{$acl_mCNT}{120}{yes}{no}}
Первый варн обуляет переменную. Каждый последующий увеличивает ее на несколько очков, если соответствующее условие выполняется. Последний варн переводит очки в секунды и делает соответствующую паузу. Если очков набежало больше 120 - ждем еще минуту и выдаем темпфейл.
Список проверяемых условий можно как угодно расширять, можно играться с количеством очков за каждое условие, можно делать несколько групп условий с отдельными паузами между ними. Самое главное - как можно дольше удержать на коннекте отправителя, чтобы он не сорвался. Если удастся поводить бота на поводке три минуты, он три минуты не будет отправлять спам другим хостам. Это очень много. Обычно, почувствовав поводок, боты сами разрывают соединение через 30-40 секунд.