La magia de procmail

Recibes hartos correos diariamente, ¿Y estas cansado de que todos te llegen a tu inbox?
procmail es la solución a tu problema!

Dentro de todas las gracias que tiene procmail, la más utilizada es sin duda el filtro de correos. La idea de hoy es explicarles como dejar funcionando procmail para que les filtre sus correos según algun patrón.

Lo primero es entender como funciona esto.

  1. El servidor Unix recibe un correo electrónico destinado a tu casilla de correo.
  2. sendmail le pasa al procmail del sistema el correo electrónico. Este procmail busca el archivo ~/.procmailrc en tu cuenta.
    • Si lo encuentra sigue las reglas que ahí esten definidas.
    • De lo contrario el nuevo correo es dejado en tu inbox.

Tenemos entonces que definir el archivo ~/.procmailrc. En mi caso, yo tengo un directorio .procmail en donde guardaré los archivos con la reglas, y mis correos se almacenan en el directorio mail

# Archivo .procmailrc, configuracion para Procmail# Setear como ‘yes’ para realizar debug de las reglas
VERBOSE=no# Quitar ‘#’ durante debugging; setear como no si se quiere logging minimo
LOGABSTRACT=all

# Variable que guarda la ubicacion de nuestra carpeta de correos
MAILDIR=$HOME/mail

# Directorio donde se almacenan los archivos con las reglas para procmail
PMDIR=$HOME/.procmail

# Poner ‘#’ antes de LOGFILE si no se quiere logging (no se recomienda)
LOGFILE=$PMDIR/log

# Nombres de los archivos con reglas para procmail
INCLUDERC=$PMDIR/listas.rc
INCLUDERC=$PMDIR/mios.rc

Ahora nos quedan crear los archivos con las reglas.

Primero, filtraremos la lista linux, la lista de php y un mensaje con un Asunto determinado.

:0:
* ^List-Id.*linux.listas.inf.utfsm.cl
linux:0:
* ^List-Id.*php.listas.inf.utfsm.cl
! otra_direccion@dominio:0:
* ^Subject.*(Prueba|prueba)
/dev/null

Procmail, filtra los correos electrónicos según expresiones regulares. Cuando esta expresion regular concuerda, la acción definida se ejecuta.

Por el caracter básico de esto, no explicaré en mayor profundida la primera linea de las sentencias.
La linea de en medio, indica el patrón que estamos buscando para ejecutar alguna acción con dichos correos. Pueden existir más de una linea en estos patrones.
La última linea nos indica las acciones a seguir.

Cuando procmail lee el archivo lo hace de manera lineal. Si un correo concuerda con un regla deja de revisar las otras reglas.

Las reglas en el archivo hacen lo siguiente:

  • Cada correo recibido desde la lista linux, será guardado en el archivo linux en el directorio mail.
  • Si el correo no calzó con la regla anterior y se recibe desde la lista de php será reenviado a la dirección otra_direccion@dominio
  • Si el correo no calzó con las reglas anteriores y en su subject se encuentra la palabra Prueba o prueba, este será enviado a /dev/null (será borrado).

Ojalá que esto le sirva a alguien, y como siempre pueden encontrar mucha más ayuda en Google!.

One Reply to “La magia de procmail”

Comments are closed.