Как только мне надо поучить spamassassin, по хорошему его хотелось бы останавливать на этот период, в это время начинает верещать exim и отдавать клиентам 4xx ошибки.
Хотелось бы что бы exim на это время пока не spamassassin, задерживал сообщения в очереди, и ждал пока spamassassin не поднимется.
вот что получилось, но есть проблемы
Код: Выделить всё
warn set acl_m0 = 0
set acl_m1 = 0
warn log_message = message $message_id to big no spam scan
message = X-Spam-Scanner-BigMess: YES
condition = ${if >{$message_size}{MESSAGE_SIZE_SPAM_MAX}{true}{false}}
set acl_m1 = 1
!hosts = +relay_from_hosts
!authenticated = *
warn log_message = spam scanner is down, $message_id
condition = ${if ={$acl_m1}{0}{1}{0}}
message = X-Spam-Scanner-Off: YES
!spam = mail/defer_ok
delay = 1m
set acl_m0 = 1
control = freeze
!hosts = +relay_from_hosts
!authenticated = *
warn log_message = spam scanner scaned, $message_id score is $spam_score
message = X-Spam-Score: $spam_score ($spam_bar)
spam = mail:true
condition = ${if ={$acl_m1}{0}{1}{0}}
condition = ${if ={$acl_m0}{0}{1}{0}}
!hosts = +relay_from_hosts
!authenticated = *
warn message = X-Spam-Flag: YES
message = X-Redirect-To: spam@spam.ru
condition = ${if ={$acl_m1}{0}{1}{0}}
spam = mail
!hosts = +relay_from_hosts
!authenticated = *
deny message = This message scored $spam_score points. Congratulations!
spam = mail:true
condition = ${if ={$acl_m1}{0}{1}{0}}
condition = ${if >={$spam_score_int}{120}{1}{0}}
!hosts = +relay_from_hosts
!authenticated = *
accept
И самое противное, если выключить spamd, сообщения замерзнуть, но если их потом разморозить проверка на спам для них не происходит (ни одна проверка не происходит), эти сообщения просто получаются и все, т.е. не проходит повторной проверки в acl.