Eu uso o Exim configurado com o mysql para filtrar meu email. Eu acho a configuração mais fácil de fazer. A configuração do Sendmail sempre me pareceu bastante enigmática.
-
Para evitar que um remetente altere a identidade mail_from e tente novamente, você precisará adicionar o endereço IP a uma lista negra e impor a lista negra. Se você conseguir que o filtro solte a conexão em vez de rejeitar o mail_from, eles precisarão se reconectar para alterar o endereço mail_from. Não acho que muitos remetentes façam isso. Vou verificar meu banco de dados e atualizar mais tarde.
-
A regra a seguir verificará se o endereço De está no domínio 'example.com'. Adicione estas linhas ao seu arquivo local.cf e reinicie o spamassassin. Aumente a pontuação quando tiver certeza de que está funcionando corretamente. Isso pressupõe que você não esteja usando o spamassassin para enviar emails.
header LOCAL_FROM_HERE From =~ /[.@]example.com/ score LOCAL_FROM_HERE -0.75 describe LOCAL_FROM_HERE From header is local address
EDIT: Eu executei algumas consultas no meu banco de dados de dados de email. De 2500 conexões que usaram um endereço local no comando MAIL FROM, apenas 28 repetiram com um endereço não local. Trata-se de uma taxa de falha de 1% ao apenas rejeitar o uso de endereços locais no comando MAIL FROM. Não encontrei nenhum caso em que um servidor se reconectasse e tentasse um endereço não local.
Supondo que o cabeçalho Envelope_from seja adicionado antes que o spamassassin filtre a mensagem, ambas as condições podem ser combinadas em uma única entrada da lista negra em local.cf. Novamente, isso pressupõe que você não execute o spamassassin no email de saída.
blacklist_from *@example.com
EDIT2: Eu uso uma ACL no Exim para rejeitar o comando Mail From se um domínio local for usado no endereço. Isso se aplica se o host de conexão não for um que eu considero local. Hosts locais incluem servidores na rede local, relés aprovados e hosts usando uma conexão autenticada na porta de envio (587).