[LUG.ro] copia de emails enviados en qmail

Ariel Weher lugro@lugro.org.ar
Fri, 15 Jul 2005 09:10:22 -0300


------=_Part_2762_26084742.1121429422966
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Antes que nada, perdon que lo mande fuera de hilo, pero no me quedo otra.

Volviendo al tema...

Lo llame "qmail-spy" y la idea es que copie los mails de determinada person=
a=20
o que contengan determinada palabra o frase.
Lo podes ajustar para que copie todo lo que aparezca en
tudominio.com<http://tudominio.com>

Se puede modificar un poco el qmail-scanner-queue.pl de la siguiente manera=
:

...

#Array of virus scanners used must point to subroutines
#Modifico esta linea agregando el nuevo escaner.
my @scanner_array=3D("clamscan_scanner","spamassassin","qmail_spy");

...

my $spamc_binary=3D'/usr/local/bin/spamc';
my $spamc_options=3D' -f';
my $spamc_subject=3D'';
my $spamassassin_binary=3D'/usr/local/bin/spamassassin';

#nueva linea
my $qmail_spy_binary=3D'/usr/local/sbin/qmail-spy';

my ($sa_comment);
my ($tag_score)=3D"";

...

#nueva subrutina
sub qmail_spy {
my ($DD);
$DD=3D`$qmail_spy_binary $scandir/$wmaildir/new/$file_id $headers{'MAILFROM=
'}=20
$headers{'RCPTTO'} 2>&1`;
}

*** Fin de las modificaciones***

Luego debes crear el archivo hecho en bash, /usr/local/sbin/qmail-spy=20
conteniendo lo siguiente:

Esta es una modificaci=F3n del qmail-qtrap que figura en
qmailrocks.org<http://qmailrocks.org>


#!/bin/sh

CASILLADESTINO=3D"/var/qmail/maildirs/tudominio.com/tu-usuario/Maildir/new/=
"
ELMAIL=3D$1
MAILFROM=3D$2
MAILTO=3D$3
export CASILLADESTINO
export ELMAIL
export MAILFROM
export MAILTO

#La lista blanca (a estas personas no les afecta el script)

whitelist_check () {
case $WHITELIST in
intocable1@tudominio.com|intocable2@tudominio.com <http://tudominio.com>)
echo $SENDER en lista blanca el `date "+%D %H:%M:%S"` >>=20
/var/log/qmail/qmail-spy.log
exit 0;;
*)
;;
esac
}

# La lista de palabras prohibidas

checkall () {
case $BANNED_WORDS in
*tudominio.com*|Enemigo1|enemigo1|enemigo2|Enemigo2)

### LO IMPORTANTE: ###
cp $ELMAIL $CASILLADESTINO
#cat $1 >> $CASILLADESTINO`date "+%Y%m%d.%H%M%S"`.smtp\:2,

echo MENSAJE COPIADO desde $MAILFROM para $MAILTO a causa de contener=20
$BANNED_WORDS el `date "+%D %H:%M:%S"` >> /var/spool/qmailscan/qmail-spy.lo=
g
exit 0;;
*)
;;
esac
}

#No editar aca abajo

WHITECHECK=3D$SENDER
for WHITELIST in $WHITECHECK
do
whitelist_check $WHITELIST
done

CONTENIDO=3D`(cat $1)`
for BANNED_WORDS in $CONTENIDO
do
checkall $BANNED_WORDS
done
exit 0

*** Fin del archivo***

Est=E1 hecho muy precariamente, pero funciona de maravillas, incluso cuando=
 el=20
server est=E1 laburando a full. Fue hecho asi justamente porque se necesita=
ba=20
que chequee tanto los mails entrantes como los salientes.

Obviamente, se puede modificar y mejorar un monton, al momento de hacerlo=
=20
importo mas que funcione lo mas rapido posible antes que la fineza de=20
desarrollo.

Bueno, espero que lo uses y cualquier cosa avisa si necesitas ayuda.

Saludos

Ariel.

Guillermo Percoco wrote:=20

Hola:
ando necesitando hacer que de todos los emails
enviados a traves de un servidor de email llegue una
copia a una casilla especifica (para control). He
visto en el faq de qmail como hacer para mantener una
copia en disco, con esto se me ocurre que podria cada
cierto tiempo copiar esa copia al Maildir de la cuenta
de control y listo. Pero para poder hacer esto debo
recompilar qmail y es algo que no quisiera hacer.

. Existe alguna manera de lograrlo sin tener que
recompilar qmail ?

Desde ya muchas gracias

--
Guillermo A. Percoco
From: Yahoo! webmail

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam =A1gratis!=20
=A1Abr=ED tu cuenta ya! - http://correo.yahoo.com.ar
_______________________________________________
Lugro mailing list
Lugro@lugro.org.ar
http://www.lugro.org.ar/mailman/listinfo/lugro

------=_Part_2762_26084742.1121429422966
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Antes que nada, perdon que lo mande fuera de hilo, pero no me quedo otra.<b=
r>
<br>
Volviendo al tema...<span style=3D"background-color: rgb(255, 255, 0);" nam=
e=3D"textmarker_13" id=3D"textmarked_12"></span><span style=3D"background-c=
olor: rgb(255, 255, 0);" name=3D"textmarker_12" id=3D"textmarked_11"></span=
><br>
<span style=3D"background-color: rgb(255, 255, 0);" name=3D"textmarker_11" =
id=3D"textmarked_10"></span><span style=3D"background-color: rgb(255, 255, =
0);" name=3D"textmarker_10" id=3D"textmarked_9"></span><span style=3D"backg=
round-color: rgb(255, 255, 0);" name=3D"textmarker_9" id=3D"textmarked_8">
</span><span style=3D"background-color: rgb(255, 255, 0);" name=3D"textmark=
er_8" id=3D"textmarked_7"></span><span style=3D"background-color: rgb(255, =
255, 0);" name=3D"textmarker_7" id=3D"textmarked_6"></span><span style=3D"b=
ackground-color: rgb(255, 255, 0);" name=3D"textmarker_6" id=3D"textmarked_=
5">
</span><span style=3D"background-color: rgb(255, 255, 0);" name=3D"textmark=
er_5" id=3D"textmarked_4"></span><span style=3D"background-color: rgb(255, =
255, 0);" name=3D"textmarker_4" id=3D"textmarked_3"></span><span style=3D"b=
ackground-color: rgb(255, 255, 0);" name=3D"textmarker_3" id=3D"textmarked_=
2">
</span><span style=3D"background-color: rgb(255, 255, 0);" name=3D"textmark=
er_2" id=3D"textmarked_1"></span><span style=3D"background-color: rgb(255, =
255, 0);" name=3D"textmarker_1" id=3D"textmarked_0"></span><br>
Lo llame &quot;qmail-spy&quot; y la idea es que copie los mails de determin=
ada persona o que contengan determinada palabra o frase.<br>

Lo podes ajustar para que copie todo lo que aparezca en <a href=3D"http://t=
udominio.com">tudominio.com</a><br>

<br>

Se puede modificar un poco el qmail-scanner-queue.pl de la siguiente manera=
:<br>

<br>

...<br>

<br>

#Array of virus scanners used must point to subroutines<br>

#Modifico esta linea agregando el nuevo escaner.<br>

my @scanner_array=3D(&quot;clamscan_scanner&quot;,&quot;spamassassin&quot;,=
&quot;qmail_spy&quot;);<br>

<br>

...<br>

<br>

my $spamc_binary=3D'/usr/local/bin/spamc';<br>

my $spamc_options=3D' -f';<br>

my $spamc_subject=3D'';<br>

my $spamassassin_binary=3D'/usr/local/bin/spamassassin';<br>

<br>

#nueva linea<br>

my $qmail_spy_binary=3D'/usr/local/sbin/qmail-spy';<br>

<br>

my ($sa_comment);<br>

my ($tag_score)=3D&quot;&quot;;<br>

<br>

...<br>

<br>

#nueva subrutina<br>

sub qmail_spy {<br>

&nbsp; my ($DD);<br>

&nbsp; $DD=3D`$qmail_spy_binary $scandir/$wmaildir/new/$file_id $headers{'M=
AILFROM'} $headers{'RCPTTO'} 2&gt;&amp;1`;<br>

}<br>

<br>

*** Fin de las modificaciones***<br>

<br>

Luego debes crear el archivo hecho en bash, /usr/local/sbin/qmail-spy conte=
niendo lo siguiente:<br>

<br>

Esta es una modificaci=F3n del qmail-qtrap que figura en <a href=3D"http://=
qmailrocks.org">qmailrocks.org</a><br>

<br>

<br>

#!/bin/sh<br>

<br>

CASILLADESTINO=3D&quot;/var/qmail/maildirs/tudominio.com/tu-usuario/Maildir=
/new/&quot;<br>

ELMAIL=3D$1<br>

MAILFROM=3D$2<br>

MAILTO=3D$3<br>

export CASILLADESTINO<br>

export ELMAIL<br>

export MAILFROM<br>

export MAILTO<br>

<br>

#La lista blanca (a estas personas no les afecta el script)<br>

<br>

whitelist_check () {<br>

&nbsp;&nbsp;&nbsp; case $WHITELIST in<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intocable1@tudominio.com|intocab=
le2@<a href=3D"http://tudominio.com">tudominio.com</a>)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo
$SENDER en lista blanca el `date &quot;+%D %H:%M:%S&quot;` &gt;&gt;
/var/log/qmail/qmail-spy.log<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit 0;;=
<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br>

&nbsp;&nbsp;&nbsp; esac<br>

}<br>

<br>

# La lista de palabras prohibidas<br>

<br>

checkall () {<br>

&nbsp;&nbsp;&nbsp; case $BANNED_WORDS in<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *tudominio.com*|Enemigo1|enemigo=
1|enemigo2|Enemigo2)<br>

<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ### LO I=
MPORTANTE:&nbsp; ###<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cp $ELMA=
IL $CASILLADESTINO<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #cat
$1 &gt;&gt; $CASILLADESTINO`date &quot;+%Y%m%d.%H%M%S&quot;`.smtp\:2,<br>

<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo MEN=
SAJE COPIADO desde $MAILFROM para $MAILTO a causa
de contener $BANNED_WORDS el `date &quot;+%D %H:%M:%S&quot;` &gt;&gt;
/var/spool/qmailscan/qmail-spy.log<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit 0;;=
<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *)<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br>

&nbsp;&nbsp;&nbsp; esac<br>

}<br>

<br>

#No editar aca abajo<br>

<br>

WHITECHECK=3D$SENDER<br>

for WHITELIST in $WHITECHECK<br>

&nbsp;&nbsp;&nbsp; do<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; whitelist_check $WHITELIST<br>

&nbsp;&nbsp;&nbsp; done<br>

<br>

CONTENIDO=3D`(cat $1)`<br>

for BANNED_WORDS in $CONTENIDO<br>

&nbsp;&nbsp;&nbsp; do<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checkall $BANNED_WORDS<br>

&nbsp;&nbsp;&nbsp; done<br>

exit 0<br>

<br>

*** Fin del archivo***<br>

<br>

Est=E1 hecho muy precariamente, pero funciona de maravillas, incluso
cuando el server est=E1 laburando a full. Fue hecho asi justamente porque
se necesitaba que chequee tanto los mails entrantes como los salientes.<br>

<br>

Obviamente, se puede modificar y mejorar un monton, al momento de <span sty=
le=3D"background-color: rgb(255, 255, 0);" name=3D"textmarker_16" id=3D"tex=
tmarked_15"></span><span style=3D"background-color: rgb(255, 255, 0);" name=
=3D"textmarker_15" id=3D"textmarked_14">
</span><span style=3D"background-color: rgb(255, 255, 0);" name=3D"textmark=
er_14" id=3D"textmarked_13"></span>hacerlo importo
mas que funcione lo mas rapido posible antes que la fineza de
desarrollo.<br>

<br>

Bueno, espero que lo uses y cualquier cosa avisa si necesitas ayuda.<br>

<br>

Saludos<br>

<br>

Ariel.<br>

<br>

Guillermo Percoco wrote:
<blockquote cite=3D"mid20050713175007.18857.qmail@web33515.mail.mud.yahoo.c=
om" type=3D"cite">
  <pre>Hola:<br>ando necesitando hacer que de todos los emails<br>enviados =
a traves de un servidor de email llegue una<br>copia a una casilla especifi=
ca (para control). He<br>visto en el faq de qmail como hacer para mantener =
una
<br>copia en disco, con esto se me ocurre que podria cada<br>cierto tiempo =
copiar esa copia al Maildir de la cuenta<br>de control y listo. Pero para p=
oder hacer esto debo<br>recompilar qmail y es algo que no quisiera hacer.
<br><br>. Existe alguna manera de lograrlo sin tener que<br>recompilar qmai=
l ?<br><br>Desde ya muchas gracias<br><br>--<br>Guillermo A. Percoco<br>Fro=
m: Yahoo! webmail<br><br>__________________________________________________
<br>Correo Yahoo!<br>Espacio para todos tus mensajes, antivirus y antispam =
=A1gratis! <br>=A1Abr=ED tu cuenta ya! - <a href=3D"http://correo.yahoo.com=
.ar">http://correo.yahoo.com.ar</a><br>____________________________________=
___________
<br>Lugro mailing list<br><a href=3D"mailto:Lugro@lugro.org.ar">Lugro@lugro=
.org.ar</a><br><a href=3D"http://www.lugro.org.ar/mailman/listinfo/lugro">h=
ttp://www.lugro.org.ar/mailman/listinfo/lugro</a><br><br><br></pre>
</blockquote>

------=_Part_2762_26084742.1121429422966--