dnl dnl Поддержка spamassassin dnl dnl исключения из проверки (список) dnl NO - не делать исключений из проверки dnl AUTH - не проводить проверку аутентифицированных отправителей dnl RELAY_FROM - не проводить проверку исходящих сообщений dnl define(`confSPAMASSASSIN_SKIP', `AUTH RELAY_FROM')dnl dnl ограничение размера проверяемых сообщений dnl NO - не ограничивать размер проверяемых сообщений dnl размер - указать максимальный размер проверяемых сообщений dnl define(`confSPAMASSASSIN_MAX_MSG_SIZE', `128k')dnl dnl величина sore, при которой клиенту возвращается 5xx вместо пометки сообщения dnl define(`confSPAMASSASSIN_REJECT_SCORE', `15')dnl dnl dnl сообщение полностью исключается из проверки, если значение $acl_m9 равно "white_list_relays" dnl ifelse(CHAPTER, `MAIN', `dnl spamd_address = 127.0.0.1 783 ')dnl dnl ifelse(CHAPTER, `ACL_CHECK_MAIL', `dnl warn set acl_m9 = no_skip ') dnl ifelse(CHAPTER, `ACL_CHECK_RCPT', `dnl warn local_parts = postmaster : abuse domains = +local_domains confDOMAINS_ABUSE set acl_m9 = skip ') dnl ifelse(CHAPTER, `ACL_CHECK_DATA', `dnl # Spamassassin # Always add X-Spam-Score and X-Spam-Report headers, using SA system-wide settings # (user "nobody"), no matter if over threshold or not. warn condition = ${if eq{$acl_m9}{white_list_relays}{no}{yes}} ifelse_strstr(confSPAMASSASSIN_SKIP, `RELAY_FROM', `dnl hosts = !+relay_from_hosts ') ifelse_strstr(confSPAMASSASSIN_SKIP, `AUTH', `dnl ! authenticated = * ') ifdef(`confSPAMASSASSIN_MAX_MSG_SIZE', `ifelse(confSPAMASSASSIN_MAX_MSG_SIZE, `NO', `dnl', `dnl condition = ${if <{$message_size}{confSPAMASSASSIN_MAX_MSG_SIZE}{1}{0}} ')') message = X-Spam-Score: $spam_score ($spam_bar) spam = nospam:true warn condition = ${if eq{$acl_m9}{white_list_relays}{no}{yes}} ifelse_strstr(confSPAMASSASSIN_SKIP, `RELAY_FROM', `dnl hosts = !+relay_from_hosts ') ifelse_strstr(confSPAMASSASSIN_SKIP, `AUTH', `dnl ! authenticated = * ') ifdef(`confSPAMASSASSIN_MAX_MSG_SIZE', `ifelse(confSPAMASSASSIN_MAX_MSG_SIZE, `NO', `dnl', `dnl condition = ${if <{$message_size}{confSPAMASSASSIN_MAX_MSG_SIZE}{1}{0}} ')') message = X-Spam-Report: $spam_report spam = nospam:true # Reject spam messages if spam score is over confSPAMASSASSIN_REJECT_SCORE deny condition = ${if eq{$acl_m9}{white_list_relays}{no}{yes}} condition = ${if eq{$acl_m9}{skip}{no}{yes}} ifelse_strstr(confSPAMASSASSIN_SKIP, `RELAY_FROM', `dnl hosts = !+relay_from_hosts ') ifelse_strstr(confSPAMASSASSIN_SKIP, `AUTH', `dnl ! authenticated = * ') ifdef(`confSPAMASSASSIN_MAX_MSG_SIZE', `ifelse(confSPAMASSASSIN_MAX_MSG_SIZE, `NO', `dnl', `dnl condition = ${if <{$message_size}{confSPAMASSASSIN_MAX_MSG_SIZE}{1}{0}} ')') condition = ${if <{$spam_score_int}{eval(confSPAMASSASSIN_REJECT_SCORE*10)}{no}{yes}} message = Spam is blocked ($spam_score ($spam_bar)) spam = nospam:true # Add X-Spam-Flag if spam is over system-wide threshold warn condition = ${if eq{$acl_m9}{white_list_relays}{no}{yes}} ifelse_strstr(confSPAMASSASSIN_SKIP, `RELAY_FROM', `dnl hosts = !+relay_from_hosts ') ifelse_strstr(confSPAMASSASSIN_SKIP, `AUTH', `dnl ! authenticated = * ') ifdef(`confSPAMASSASSIN_MAX_MSG_SIZE', `ifelse(confSPAMASSASSIN_MAX_MSG_SIZE, `NO', `dnl', `dnl condition = ${if <{$message_size}{confSPAMASSASSIN_MAX_MSG_SIZE}{1}{0}} ')') message = X-Spam-Flag: YES log_message = probably spam (score: $spam_score) spam = nospam ')dnl