Моё почтение, уважаемые!
По просьбам коллег, излагаю некую идею: как сделать отдельные проверки не
site-wide, как сейчас, а скорее host-specific. Но не согласно неким спискам,
как сейчас -- а согласно неким признакам.
Что мы сейчас имеем: у нас есть проверки на этапе конверта, и остальные.
Проверки на этапе конверта -- в общем-то себя исчерпали. Однако, именно они
дают основную эффективность при борьбе со "злом". Как следствие исчерпания,
появляются проверки извращённые -- как-то: proxycheck, greylistsing, всякого
рода задержки на этапе приёма, dns-based списки и т.д. Они в сучности своей --
достаточно эффективны, но геморройны для конечного пользователя, и зачастую
являются средствами _дополнительными_. Почему не применять эти самые проверки
для всех? Скажем, greylisting -- он бесит пользователей чрезвычайно, да и
мешает зачастую даже админу.
В чём заключается идея:
В том, чтобы хосту на этапе конверта насчитывались баллы, назовём их --
"недоверия". А для каждой из [дополнительных] проверок можно было-бы указать
пороговое значение недоверия рилею, на котором данная проверка применялась-бы.
По каким признакам насчитывать балл "недоверия"? Да по любым! Навскидку:
- отсутствие PTR-записи рилея
- несоответствие PTR-записи доменной части аргумента HELO
- попадание в DNSBL/RBL/DUL/whatever
- достаточное кол-во цифр в PTR-записи
- отсутствие/присутствие/кривизна SPF-записи
- некие свои базы, например создать самозаполняющуюся базу, в которую заносить
_сети_, из которых чаще всего шлют вирусы
- ошибки (левые символы, синтаксис etc) параметров HELO/MAIL FROM/RCPT TO
...
Соответственно, рилей, у которого всё "красиво", будет подвергнут минимуму
проверок, и как следствие, сэкономит ресурс сервера и ускорит доставку.