Procesando correos con Procmail


Procmail es un sencillo programa que nos permite procesar correos, haciendo con ellos lo que queramos, de una forma sencilla pero muy potente. Podemos separar los correos según determinados filtros, eliminar correos spam, re-enviar a otras cuentas, activar antivirus de correos, responder automáticamente, ejecutar programas, etc …

Las posibilidades son practicamente ilimitadas y dependen de nuestra imaginación y de nuestras habilidades, pero basicamente el proceso consiste en 2 pasos:
– identificar el correo
– procesar el correo

Para identificar el correo, usaremos las expresiones regulares, de forma que los todos correos que cumplan unas determinadas condiciones, pasaran a realizar el proceso que queramos.

Os voy a mostrar con un sencillo ejemplo, como se utiliza procmail.

Primero configuramos fetchmail, para que recoga todos mis correos de diferentes cuentas, depositando todos los correos en la cuenta local carlos:

poll isp.server1.es
protocol POP3
user carcoco
password alcoyyy
is carlos here

poll isp.server2.com
protocol POP3
user carcoco
password la_contrasenya
is carlos here

Ahora le indico que para cada correo que me llege se ejecute el procmail, que se encargara de separar los correos de las diferentes cuentas según mis necesidades, para hacerlo, usaremos .forward, indicandole que ejecute procmail para cada correo.

$ cat $HOME/.forward
| procmail

Otra opción interesante es procesar directamente un fichero de correo (el tipico *.mbox) de forma que aplicaremos los filtros indicados en el .procmailrc a todos los correos que pertenecen al fichero mbox (seria una especie de procesado de correos en diferido):

$ formail -s procmail < INBOX.mbox

En este caso es recomendable usar un script como el que encontramos en la propia pagina de ayuda del procmail .

#!/bin/sh

ORGMAIL=/var/mail/$LOGNAME

if cd $HOME &&
test -s $ORGMAIL &&
lockfile -r0 -l1024 .newmail.lock 2>/dev/null
then
trap “rm -f .newmail.lock” 1 2 3 13 15
umask 077
lockfile -l1024 -ml
cat $ORGMAIL >>.newmail &&
cat /dev/null >$ORGMAIL
lockfile -mu
formail -s procmail <.newmail &&
rm -f .newmail
rm -f .newmail.lock
fi
exit 0

Ahora lo que nos queda es indicarle al procmail lo que queremos que haga exactamente para cada correo, por ejemplo que me separe los correos de Bulma y los deposite en un fichero aparte, algunos correos de spammers que se los carge directamente, etc …

:0
* ^To.*bulmailing*
bulma

😮
* ^From*Spammer_de_los_cojones*
/dev/null

Referencias:


carcoco

http://bulma.net/todos.phtml?id_autor=132

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1562 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.