Mover o email marcado como Spam pelo Spamassassin era meu objetivo. Uma luta em pleno domingo de páscoa.

Vamos do início. Recentemente instalei um servidor de email para um cliente e resolvi que dessa vez iria fazer algo diferente.

Através de discussões na internet ví relatos que o Dovecot era um Servidor POP/IMAP mais rápido que o Courier e também mais estável, além de sua premissa básica de prezar pela segurança.

Mesmo nunca tendo problemas com a estabilidade do Courier resolvi testar o até então desconhecido Dovecot.

Antes de implementar comecei a pesquisar a respeito e planejar a instalação. Grata surpresa ao ler o site oficial que o Dovecot já possui integrado um SASL (esqueça o Cyrus SASL, SASL é na verdade uma abrevitatura de Simple Authentication and Security Layer). Ví que a conversão das contas do Courier seria simples pois o site do Dovecot possui o script pronto.

Outra coisa que me chamou atenção no Dovecot é a facilidade de se instalar Plugins, Quota, Sieve, tudo pode ser facilmente integrado.

Uma idéia fixa na minha cabeça seria que o servidor seria instalado totalmente out-of-box (pacotes padrão), quer dizer, eu não iria compilar nada. Isso porque muitas vezes outro técnico da empresa vai dar manutenção no servidor e um apt-get upgrade pode sobrescrever o que não deve, ou mesmo que se utilize apt preferênces o pacote iria ficar desatualizado.

Então ficou assim instalado:

- Postfix TLS
- Dovecot POP/IMAP TLS
- Dovecot SASL
- Clamav com Clamav-Filter
- Greylist
- Spamassassin

Talvez se perguntem onde está o filtro de antivirus, mas não utilizo Amavis e nem MailScanner, a uns 4 anos testei o Clamav-Filter, que é um filtro de conteúdo para Postfix e pelo menos na época não tinha comparação, era umas 10x mais rápido que o Amavis.

Se quiser saber como instalar, abaixo está o endereço do site do desenvolvedor do script. A propósito, a página dele possui bons artigos de Postfix.
http://www.unitednerds.org/thefallen/docs/index.php?area=Postfix&tuto=Clamav-gsoares

Agora que já contei a história, vamos a solução. Depois de tudo instalado, resolvi que nesse servidor utilizaria a marcação do Spamassassin para mover as mensagens marcadas como Spam diretamente para a pasta Spam na caixa do usuário, e foi quando começou a luta.

Procurei a respeito, e encontrei alguns artigos de como utilizar o Procmail para o propósito, mas somente depois de quebrar a cabeça algum tempo descobri que o Procmail só faz o delivery para contas locais e o servidor foi instalado com suporte a domínios virtuais.

Então fui atrás de ativar o Maildrop para esse propósito.

Como utilizo Debian, instalar o Maildrop é moleza, um simples apt-get install maildrop é suficiente, e, resta somente ativá-lo no Postfix.

Conforme explicação do site oficial (http://www.postfix.org/MAILDROP_README.html)
Postfix pode ser configurado para a entrega de mensagens diretamente ao maildrop, sem utilizar o agente local de entrega como intermediário. Isso significa que você não terá disponível os aliases (/etc/aliases) ou o arquivo .forward
Tipicamente utilizado onde os usuários não possuem contas locais no sistema.

Primeiro vamos alterar o arquivo main.cf do Postfix, adicione ou altere conforme o caso, as seguintes linhas:

###################### Maildrop ######################
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1
######################################################

Em seguida alteramos o arquivo master.cf, adicione as linhas abaixo:

###################### Maildrop ######################
maildrop   unix -       n       n       -       -       pipe
   flags=DRhu user=vmail argv=/usr/bin/maildrop -d vmail ${nexthop} ${user} ${extension}
######################################################

Detalhe, se você seguir os passos conforme o site oficial o maildrop não vai funcionar, isso claro, para domínios virtuais. As linhas conforme o site oficial são para usuários que possuem contas locais no sistema.
Repare que na segunda linha está especificado o usuário vmail. Esse usuário não deve ser o mesmo utilizado pelo postfix.

Agora que vem o script que você os emails, crie o arquivo /etc/maildroprc com o conteúdo a seguir:

################# /etc/maildroprc ####################
SHELL=/bin/bash

DOMAIN=tolower(“$1″)
USER=tolower(“$2″)
EXTENSION=tolower(“$3″)
USERMAILDIR=”/var/mail/virtual/$DOMAIN/$USER”

if (/^X-Spam-Flag: *YES/)
 {
     exception {
         to “$USERMAILDIR/.Spam/”
     }
 }
######################################################

Altere as permissões do arquivo para o usuário vmail, esse usuário deverá ter permissão de escrita no diretório de email dos usuários.

A ideia do arquivo é a seguinte, primeiro são definidos as variáveis que foram recebidas pelo Postfix, logo em seguida através do uso de expressão regular move-se qualquer mensagem com o header “X-Spam-Flag: *YES” para o diretório escolhido.

Por fim, para que as alterações façam efeito, reinicie o Postfix.
# postfix reload

Pronto, seu Postfix utilizando-se do Maildrop encaminhará as mensagens marcadas como Spam para a pasta definida.

Se tiver alguma dúvida, não se esqueça de postar os logs do erro, se for o caso.

Tags: , , , , , , , , , , , , , , , , , , , , ,

1 Comentário on Movendo mensagens de Spam automaticamente para diretório Spam com Postfix e Maildrop

  1. This website submit is basically out of the box. Quite a few other posts we have witnessed on this topic but this will be the a person i was searching for. I would like to subscribe to your feed for my streaming movies blog and also bookmarking this website now.

Deixe um Comentário

*

Stop SOPA