Envie mensagens de spam para uma pasta especial usando o postfix

9

Eu tenho um servidor postfix executando o amavis e o SpamAssassin para ajudar a filtrar o spam. As mensagens detectadas como spam são assim quando entregues no Maildir do usuário:

De tom @ tom-mint sexta-feira 15 de março 01:46:20 2013
Caminho de retorno: <tom @ tom-mint>
X-original-para: [email protected]
Entregue para: [email protected]
Verificado por X-Virus: Debian amavisd-new em my-server.com
Bandeira X-Spam: SIM
Pontuação X-Spam: 6.463
Nível de spam X: ******
Status do X-Spam: Sim, pontuação = 6.463 tagged_above = 2 obrigatório = 6.31
    testes = [DRUGS_ERECTILE = 2.221, FH_FROMEML_NOTLD = 0,18,
    FSL_HELO_NON_FQDN_1 = 0,001, HELO_NO_DOMAIN = 0,001, RCVD_IN_PBL = 3,558,
    RDNS_DYNAMIC = 0,363, TO_NO_BRKTS_DYNIP = 0,139] aprendizagem automática = não
Data: Sex, 15 de março de 2013 01:46:19 -0400
Para: [email protected]
Assunto: *** SPAM *** hello
Agente do Usuário: Heirloom mailx 12.5 20/6/10
Tipo de conteúdo: texto / sem formatação; charset = us-ascii
De: tom @ tom-mint (Tom)
Status: RO

compre algum viagra!

Observe especificamente o assunto, que é anexado com ***SPAM***, e o X-Spam-Flag: YEScabeçalho.

Qual é a melhor maneira de configurar postfixpara armazenar essas mensagens em uma pasta de lixo eletrônico especial?

Da minha pesquisa, parece que vou precisar usar uma ferramenta de entrega de correio diferente do postfix para fazer isso, mas não tenho certeza de qual abordagem é a melhor. Parece haver muitas informações desatualizadas, e estou me perguntando se o postfix é capaz de colocar mensagens em uma pasta ou não.

Os diretórios de correio são todos Maildir.

Tom Marthenal
fonte
Parece que pode ser necessário usar algo como maildrop . Ainda estou procurando uma maneira de fazer isso com o MDA padrão do Postfix para manter aliases e outros recursos do postfix com o mínimo de problemas. Vou postar minha resposta quando for apresentada.
Tom Marthenal

Respostas:

8

A leitura superficial da página do manual do agente de entrega local do postfix local (8) não mostra nenhuma dica desse tipo de recurso - conforme o esperado. Esse tipo de tarefa geralmente é transferido para o procmail (provavelmente por meio da diretiva mailbox_command), que pode lidar com a tarefa que você descreve enquanto gerencia sua pia da cozinha. A desvantagem do procmail é o formato do arquivo de configuração, a vantagem da flexibilidade e as toneladas de exemplos que são facilmente encontrados. Se algo melhor que procmail surgiu recentemente, eu não sei.

Porém, pelo meu dinheiro, mesmo que eu encontrasse o caminho para convencer o MTA a fazer o que você deseja, eu não seguiria esse caminho, porque esse tipo de coisa de classificação de correspondência tem uma maneira de empalidecer e não tem MTA (que eu saiba: talvez a troca, quem sabe) possa fazer um bom trabalho ao ser também um manipulador / agente de entrega flexível de mensagens.

Esta é uma receita do procmail que fará o que você deseja com base no único conteúdo do cabeçalho (onde DEFAULT é o diretório de entrega, geralmente algo como $ HOME / Mail /):

:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/

Edit: (Isso assume o formato de caixa de correio maildir, conforme observado em um comentário abaixo. Omita a barra final se estiver usando o mbox)

Forma de vida alienígena
fonte
$DEFAULT/não é necessário. Útil para legibilidade humana. Observe também que a adição de uma barra no final criará um Maildir, se o Mbox for omitido, então a omita (consulte: unix.stackexchange.com/a/132658/241396 ).
Jari Turkia
5

Como a Alien Life Form disse, este é um trabalho para o procmail. Isso não substitui o agente de entrega local do servidor de correio; é um processo separado que será chamado depois que o MDA concluir seu trabalho.

Cada usuário que deseja que o procmail classifique seus e-mails precisará criar um arquivo chamado .forwardem seu diretório pessoal. Esse arquivo deve conter o seguinte:

"|exec /usr/local/bin/procmail || exit 75"

complete com o "sinal e tudo.

O ALF já postou um .procmailarquivo básico que classificará o email marcado com spam em uma pasta separada.

Jenny D
fonte
1
Por favor, note que em alguns casos procmail vidas em / usr / bin / procmail, para descobrir onde ele está em seu sistema funcionarwhich procmail
Malfist
4

Qual é o seu agente de entrega de correio (consulte main.cf mailbox_command)? Se o MDA é dovecot, ele suporta o padrão Sieve IETF (rfc5228), que pode fazer muito mais do que o procmail sem expor possíveis falhas de segurança. NÃO aparafuse o procmail no postfix / pomba, a peneira está totalmente integrada. Se você estiver usando o Courier, o procmail é uma solução adequada. No entanto, você encontrará os programas peneira / peneira da Pigeonhole mais rápidos e limpos.

A seguir, é apresentado um script de peneira simples para reconhecer seu cabeçalho de spam e colocar a mensagem no arquivo Lixeira.

require "fileinto";

if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"  
{
  fileinto "Trash";
  stop;
}
dturvene
fonte