Configurando a Filtragem do Procmail para Spam em Usuários Virtuais do Postfix / Courier + MySQL

4

Eu tenho procurado por um recurso sobre como fazer isso, mas não ter muita sorte.

Estou executando um MTA / MUA funcional baseado no Postfix e no Courier com o MySQL como back-end para usuários virtuais. Eu baseei meu sistema no seguinte artigo:

link

Foi ótimo até as seções vazias! Minha configuração SMTP / IMAP está funcionando muito bem, e eu consegui instalar o SpamAssassin e o ClamAV também com alguma documentação separada que encontrei on-line.

O que eu preciso de ajuda é configurar o Postfix para usar o Procmail como o mailbox_command para que ele funcione com usuários virtuais. Eu quero ser capaz de definir diferentes regras do Procmail para cada usuário virtual separadamente. Eu li a documentação do Postfix, e pelo que entendi a funcionalidade padrão para mailbox_command só funcionará para usuários locais (não-virtuais).

Obrigado antecipadamente!

ATUALIZAÇÃO:

Desde este post, percebi que mailbox_command não é sustentável. Em vez disso, encontrei uma maneira de fazer isso usando o transport_maps. Leia minha própria resposta abaixo.

    
por AJ. 06.11.2010 / 19:15

2 respostas

0

Este artigo foi de ajuda: link .

Houve dois problemas que tive que superar. Primeiro, a solução exige um arquivo estático para manter o mapa do usuário / transporte. Eu preciso de uma solução virtual. Então, ao invés de criar / etc / postfix / transport, meu main.cf diz:

transport_maps = mysql:/etc/postfix/mysql_virtual_transport_maps.cf

Aqui está o meu mysql_virtual_transport_maps.cf:

user = ******
password = ******
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = transport
where_field = username

Isso resolveu o requisito "virtual". O outro problema é que minha estrutura de diretórios é diferente do exemplo procmailrc.common. Aqui está o meu procmailrc.common:

:0
* RECIPIENT ?? .*@\/.*$
{ DOMAIN = "$MATCH" }
#added RECIPIENT variable and we extract domain name
MAILDIR="$HOME/$DOMAIN/$USER@$DOMAIN"
DEFAULT="$MAILDIR/"
LOGFILE="./procmail.log"
VERBOSE=YES
#each user will set his own log file
NL="
"
WS=" "
SWITCHRC="$HOME/$DOMAIN/$USER@$DOMAIN/.procmail"

Espero que isso ajude outras pessoas que possam estar tentando fazer algo semelhante.

-aj

    
por 14.11.2010 / 18:48
0

Crie um procmailrc global e, para cada usuário, crie uma regra como esta:

:0
^[email protected]
| /usr/bin/procmail -m /etc/procmailrcs/someuser

A regra final usual de cada arquivo em / etc / procmailrcs / deve então ser canalizar a mensagem para entregar (8).

Se você tiver muitos usuários e não quiser manter um arquivo dessa natureza, considere escrever um script que analise os cabeçalhos de e-mail para descobrir qual arquivo / etc / procmailrcs / é desejado e execute o procmail de acordo, e definindo esse script como seu mailbox_command.

    
por 11.11.2010 / 21:12