Cópia de todos os emails enviados e recebidos, usando qmail

Um dia desses precisei de uma solução nada comum. Um cliente queria uma cópia de todos os emails enviados e recebidos pelo servidor dele. Ou seja ele queria digamos assim "espionar" o que os funcionarios andavam enviando e recebendo. Para os emails recebidos é facil, pois o vpopmail tem o catch-all (pega-tudo), agora para emails enviados, ficou um pouco complicado. Resolvi procurar, e para minha surpresa, essa solução estava mais perto do que imaginava. No FAQ do qmail (/var/qmail/doc/FAQ), quase no final, no item 8.2 dizia assim:

8.2. How do I keep a copy of all incoming and outgoing mail messages?

Answer: Set QUEUE_EXTRA to "Tlog\0" and QUEUE_EXTRALEN to 5 in extra.h.
Recompile qmail. Put ./msg-log into ~alias/.qmail-log.

Só que esta solução não me serviria muito, pois como uso Maildir, não iria funcionar, entao fazendo alguns testes, consegui fazer funcionar da seguinte forma:

Primeiro vamos criar o usuário que vai receber todas as mensagens:

cd /var/vpopmail/bin
./vadduser pegatudo@dominio.com.br

Obs: Substitua dominio.com.br, pelo seu domínio.

Agora, entre no dir do source do qmail e altere o extra.h:

cd /usr/src/qmailsource/netqmail-1.05/netqmail-1.05
cp -a extra.h extra.h.orig
cat extra.h.orig | sed -e '/QUEUE_EXTRA/s/\"\"/\"Tpegatudo\\0\"/g' -e '/QUEUE_EXTRALEN/s/0/10/g' > extra.h

Caso queria usa a própria conta do postmaster faça assim:

cd /usr/src/qmailsource/netqmail-1.05/netqmail-1.05
cp -a extra.h extra.h.orig
cat extra.h.orig | sed -e '/QUEUE_EXTRA/s/\"\"/\"Tpostmaster\\0\"/g' -e '/QUEUE_EXTRALEN/s/0/12/g' > extra.h

agora pare seu qmail:

qmailctl stop

agora vamos compilar:

make clean
make
make setup check

Agora startando o qmail novamente:

qmailctl start

Pronto, tudo que for enviado e recebido vai direto para a conta pegatudo :D

Até a próxima.

Cláudio Borges

cbsfilho[at].gmail.com
www.claudioborges.org