Sergey Korolew wrote:
>>>В общем, я, как и многие, наверно, использую 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 и если что выйти из рулесета; наверно так), но красиво
> вряд ли получится.
да я бы уже добавил сегодня утром после прочтения письма в лист. но там
есть скользкий момент. т. е. проверка по хидерам возможно только после
приема всего письма. и ответ мы может дать только per message, а не per
client, как при проверкам по IP рилея/адресу отправителя в access_db
и/или по dnsbl. что делать, если письмо идет для двух пользователей,
причем один из них spamfriend, а другой - нет?
>>>Еще столкнулся со странной неработой команды 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.
тогда может проще вообще так?
ifelse(len(X`'_ARG_), `1',
`define(`_DNSBL_SRV_', `blackholes.mail-abuse.org')',
`define(`_DNSBL_SRV_', _ARG_)'
)
> VU> p. s. надо быть внимательней с подпиской. если подписывать адрес
> VU> test1 на bittu.org.ru, то и писать надо как бы с него, а не с ds на bittu.org.ru
> Дело в том, что алиасных адресов у меня много и на сайтах я
> подписываюсь всегда на них, это уже на уровне рефлекса :-) После того
> как на адрес начинает валиться спам он сносится. Ну и тут также, не
> думая..
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694 CRV2-RIPE, CRV-UANIC