Re[2]: [sendmail-conf] delay_check и проверка received

Sergey Korolew ds на bittu.org.ru
Пн Окт 18 10:33:27 EEST 2004


Здравствуйте, Victor.

Вы писали 18 октября 2004 г., 10:48:20:

>> В общем, я, как и многие, наверно, использую delay_check "friend" и
>> access_db для исключения из проверок писем для postmaster@ и abuse на . И
>> теперь гложет сомнение - при проверках Received: (check_received и
>> check_received_dnsbl) нет никаких обработок для этих исключений. То

VU> check_received и check_received_dnsbl исторически создавались довольно
VU> давно. тогда еще ни в одном из хаков не было исключений по spam 
VU> friend'ам. надо будет таки внести в эти хаки такие исключения.

Угу. Отключать хаки жалко, на них срубается больше половины спама (у
нас несколько неуправляемых релеев снаружи).. Я, конечно, попробую
добавить эту функциональность самостоятельно (проверить в
parse_received и если что выйти из рулесета; наверно так), но красиво
вряд ли получится.

>> Еще столкнулся со странной неработой команды len(). Вот, например:
>> define(`_DNSBL_SRV_', `ifelse(len(X`'_ARG_),  `1',
>>     `blackholes.mail-abuse.org',
>>     `_ARG_')')dnl
>> Типа если _ARG_ отсутствует (его длина равна 0), то берем дефолтное
>> значение. Грабли в том, что у меня всегда берется дефолтное значение,
>> несмотря на наличие/отсутствие _ARG_. После отладки оказалось, что
>> len(_ARG_) всегда возвращает 0. Вместе с тем аналогичный кусок в
>> feature dnsbl работает нормально :-\ Я тупо переписал определение
>> _DNSBL_SRV_, но ведь непорядок...
>> m4-1.4 из портов (freebsd 4.10rel)

VU> вышеприведенная конструкция синтаксически правильная.

Логично, это кусок хака check_received_dnsbl.m4, скачанного вчера :-)
Вот как они включаются:
HACK(`check_received')
HACK(`check_received_dnsbl', `dnsbl.njabl.org')
HACK(check_received_dnsbl, `sbl.spamhaus.org')
HACK(`check_received_dnsbl', `list.dsbl.org')
HACK(`check_received_dnsbl', `bl.spamcop.net')

VU> если другие features/hacks не использовались, то можно посмотреть на
VU> полный код хака?
Ага :-)
Я тут с утреца поотлаживал и вот что получилось. Если переписать
строку как:
define(`_DNSBL_SRV_', ifelse(len(X`'_ARG_),  `1',
     `blackholes.mail-abuse.org',
     `_ARG_'))dnl
то бишь убрать кавычки вокруг ifelse то все работает. Странно.
В общем, конструкция define(`_TMP_LEN_', len(_ARG_)) работает,
а define(`_TMP_LEN_', `len(_ARG_)') нет, всегда получается 0.

VU> p. s. надо быть внимательней с подпиской. если подписывать адрес 
VU> test1 на bittu.org.ru, то и писать надо как бы с него, а не с ds на bittu.org.ru
Дело в том, что алиасных адресов у меня много и на сайтах я
подписываюсь всегда на них, это уже на уровне рефлекса :-) После того
как на адрес начинает валиться спам он сносится. Ну и тут также, не
думая..

-- 
С уважением,
 Sergey                          mailto:ds на bittu.org.ru





Подробная информация о списке рассылки sendmail-conf