Você pode configurar o postfix para usar o Spamassasin / Amavis como filtro proxy. Desta forma, você evita saltos: A conexão com o lado remoto do SMTP permanecerá aberta até que as verificações de spam sejam feitas e o postfix responda com uma mensagem OK ou REJEITADA. Desta forma, o lado remoto é responsável por saltos.
# master.cf
# mail inbound
smtp inet n - - - - smtpd
-o smtpd_proxy_filter=127.0.0.1:10024
-o smtpd_client_connection_count_limit=10
-o smtpd_proxy_options=speed_adjust
# spamassasin/amavis is listening to port 10024 and sending it's
# checked mail to port 10025
amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
# SMTP return (from amavis/spamassasin)
localhost:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_override_options=no_address_mappings
-o mynetworks=127.0.0.0/8
-o receive_override_options=no_unknown_recipient_checks
# main.cf
# for rejecting spam
header_checks = pcre:/etc/postfix/header_checks
# header_checks
/X-Spam-Level: \*{9,}/ REJECT Looks like spam to me.
Se você estiver usando o Amavis para chamar o spamassasin, poderá permitir que o Amavis rejeite o e-mail para você - a área rejeitada pode ser configurada com $sa_kill_level_deflt
.
Adicione ,no_header_body_checks
ao receive_override_options
na entrada de retorno do SMTP ao usar o Amavis.