Filtrar correos de remitentes en la libreta de direcciones


Este es un complemento para el artículo Ensalada de correo…. Muestra cómo dirigir todos los correos de remitentes cuyas direcciones estén en la libreta de direcciones a una carpeta determinada.

Hace tiempo que seguí parte de los pasos del artículo mencionado, con algunas diferencias. En mi caso, instalé Postfix, fetchmail, procmail, spamassassin, mutt y sylpheed. Creé una serie de reglas en procmail para distribuir el correo entre diferentes carpetas, pero me faltaba un detalle. Necesitaba una regla mediante la cual, todos los correos de mis amigos se guardaran en una misma carpeta.
En mi caso, utilizo sylpheed, y sólo describo este truco para ese programa, pero será muy fácil adaptarlo para otros.
Lo primero que hice fue guardar las direcciones de mis amigos en una carpeta de la agenda de direcciones de sylpheed. Como se puede comprobar, sylpheed crea un archivo xml llamado $HOME/.sylpheed/addrbook–index.xml en el cual se detallan las diferentes carpetas de la agenda de direcciones.
Cada carpeta se guarda en un archivo xml de la forma $HOME/.sylpheed/addrbook-??????.xml, dónde ?????? es un número. Se puede observar que en dicho archivo hay una etiqueta <person> por cada contacto y dentro de ella, una etiqueta <address> por cada dirección. Cada dirección es un campo del tipo email=”usuario@dominio”.
El primer paso para conseguir mi objetivo es crear un archivo de texto plano que contenga sólo una lista de direcciones, al que llamaré amigos.lst. Para ello ejecuto la siguiente orden:
cat $HOME/.sylpheed/addrbook-000001.xml | grep email= | cut -d\” –fields=6 > $HOME/amigos.lst
Lo que hace esta orden es extraer del archivo de direcciones las líneas que contengan la cadena “email=”. Cada línea resultante, se divide en campos separados por ” y se escoge sólo el sexto campo (que es la dirección). La salida se envía a un archivo llamado amigos.lst.
Lo siguiente es añadir una regla de filtrado en $HOME/.procmailrc, de la siguiente forma:

:0:
* ? Formail -x From: | egrep -is -f $HOME/amigos.lst
amigos/.

Esta regla filtra todos los correos. Extrae la dirección del remitente y comprueba si esa dirección está en amigos.lst. Si es así envía el correo al maildir amigos. Si fuera un mailbox habría que quitar el “/.”
Lo ideal es crear una tarea en cron que ejecute la primera orden para actualizar la lista de direcciones regularmente, sin necesidad de hacerlo a mano

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1999 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.