[FUGSPBR] OFF: Qmail + Procmail + vdelivermail bounce (solução)

Rodrigo Graeff delphus em delphus.org
Qui Jan 22 18:55:22 BRST 2004


Passei por mal bocados tentando solucionar este problema de usar
procmail+vdelivermail antes de criar um patch para o vpopmail que ainda
não está 100% funcional.
O cenário é o seguinte: voce usa qmail-scanner com spamassassin ou
spamassassin dentro do procmailrc e quer gravar mensagens de spam em
outra pasta de imap. Fazendo um search em listas de discussão vais
encontrar muitos scripts de procmail que fazem uma chamada para o
vdelivermail '' bounce-no-mailbox, porém este não entregará mensagens em
bounce (ainda estou tentando descobrir exatamente o por quê). Vamos aos
passos pra ter esta funcionalidade "funcional".

instale o procmail via ports /usr/local/mail/procmail

voce deverá criar o .qmail-default do seu domínio virtual como este:

| preline procmail -p -m /usr/local/etc/procmailrc |
/usr/local/vpopmail/bin/vdelivermail '' bounce-no-mailbox

OBS: esta é uma única linha

e depois criar o arquivo /usr/local/etc/procmailrc como este:
###### Procmairc start ##########
#
# Uncomment these if you want to debug
VERBOSE=ON
LOGFILE=/tmp/procmail.log
# Find the users home directory and store in variable
VIRTUALHOME=`/usr/local/vpopmail/bin/vuserinfo -d $EXT@$HOST`
# Location of safecat
SAFECAT=/usr/local/bin/safecat
#Default
DEFAULT="|"
# Location of the users Maildir
MAILDIR=$VIRTUALHOME/Maildir
                                                                                                                             # Give each user a spamfolder where spam-tagged mail will be delivered.
SPAMDIR=$VIRTUALHOME/Maildir/.Spam

# Create spam folders 
SPAM_CREATE=`/usr/local/vpopmail/bin/spam.sh $VIRTUALHOME`
                                                                                                                                                                                                                                                          # Finally we can let SpamAssassin check our mail.
#:0fw
# Uncoment this line if you do not have qmail-scanner with spamassassin
#| /usr/local/bin/spamassassin
                                                                                                                    # If the message is tagged as spam, put it in spamfolder
:0w
* ^X-Spam-Status: Yes
| $SAFECAT $MAILDIR/tmp $SPAMDIR/new
                                                                                                                             # If the message is considered clean, deliver as normal.
:0w                                                                                                                        ###### Procmairc end ##########

OBS: deve-se instalar o port /usr/ports/mail/safecat que faz o arquivo
de delivery em formato Maildir. Preste atenção no PATH, corrija para o
seu PATH correto (mesmo no shell script abaixo)

Crie o shell para criar o folder de spam

#!/bin/sh
if [ ! -d $1/Maildir/.Spam ]
then
  /usr/local/bin/maildirmake $1/Maildir/.Spam
  chown -R vpopmail.vchkpw $1/Maildir/.Spam
fi

   Adicionei um debug no /tmp/procmail.log que pode ser comentado no
futuro para salvar espaço em disco, porém na instalação é útil.
O procmail irá gerar uma mensagem de erro:
procmail: Incomplete recipe
procmail: Assigning "LASTFOLDER=|"
Mas passará a mensagem para o vdelivermail, onde este fará o delivery
correto com ou sem bounce. 

Qualquer dúvida estou à disposição.
Abraços,
-- 
Rodrigo Graeff
delphus em delphus.org
www.delphus.org
icq: 9636816
Public PGP Fingerprint
D28D A200 AFF0 D484 9F7A 2BB5 2E1B 30DF D472 D7D2

_______________________________________________________________
Sair da Lista: http://lists.fugspbr.org/listinfo.cgi
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/



Mais detalhes sobre a lista de discussão freebsd