Delirios de un Informático

Cómo listar todos los correos “catch all” utilizados en un dominio

Llevo utilizando Google Apps con mi dominio prácticamente desde que se lanzó de forma gratuíta (hoy en día no lo es) porque una de las mejores características es el uso del catch all, es decir, el poder direccionar todas los correos electrónicos que no existan en tu dominio a un único correo centralizado.

El problema es que, pasados los años, uno se olvida de todas las direcciones utilizadas y el spam empieza a llegar a cientos de direcciones inexistentes, por lo que lo mejor es anular el catch all y crear los alias correspondientes. Pero, ¿cómo listar todas las direcciones utilizadas?. Es necesario procesar todos los correos recibidos y extraer las direcciones y eso es posible utilizando un cliente de correo electrónico que tire de IMAP y guarde los correos en disco. He optado por utilizar Apple Mail (aunque serviría Mozilla Thunderbird):

find ~/Library/Mail -name '*.emlx' | xargs egrep '^Delivered-To:' | awk '{print $2}' > mails.txt
sort mails.txt | uniq -c | sort -n -r

Estos dos comandos escanearán todos los correos extrayendo la dirección de destino y ordenando por las más usadas. De este modo, resulta fácil ver las direcciones utilizadas para crear los alias y también localizar los correos recibidos para dar de baja o modificar el correo asociado a cada servicio.

Cómo decodificar correos en formato maildir

Me acabo de encontrar con la necesidad de recuperar un adjunto de un correo enviado con una cuenta que utiliza Maildir como formato de almacenamiento de los correos. Es un archivo de texto plano con las cabeceras y demás pero que tiene el adjunto codificado en base64. Tras curiosear un poco dí con el programa munpack, que permite decodificar los archivos binarios en mensajes MIME, así como el antiguo formato uuencoded.

Para realizar la decodificación:

sudo apt-get install mpack
cat mensaje | munpack

En el directorio donde estemos aparecerá un archivo con extensión .desc que contiene el texto del mensaje y todos los adjuntos con su correspondiente nombre :).

The Roundcube Webmail Project

Echando un vistazo por las novedades de SourceForge.net me encuentro con que RoundCube ha llegado a la versión 0.1 stable.

RoundCube es un excelente cliente de correo electrónico vía web, muy sencillo pero potente, y que tiene esos pequeños detalles que no tienen clientes muy utilizados como SquirrelMail: correcta visualizacion de mensajes HTML, buen uso de AJAX ( por ejemplo, para mostrar las direcciones de correo de los contactos al enviar ), agenda de contactos, corrección de ortografía y todo en un sencillo y bonito diseño.

Requiere PHP5 y MySQL, y la instalación es más o menos sencilla. La única pega es que no soporte POP3 y únicamente sea posible utilizar buzones IMAP.

Actualización: Esto es muy interesante combinándolo con Fetchmail + Courier-imap + Procmail + SpamAssassin. Todo esto permite montar un servidor de correo IMAP que filtre y sirva todos los correos que se pueden ir descargando automáticamente de una o varias cuentas POP/IMAP, teniendo algo parecido a GMail: correos almacenados indefinidamente con enorme capacidad de almacenamiento….

SpamAssassin remoto en Gnome Evolution

Gnome Evolution permite la integración con SpamAssassin ( SA en adelante ) para la detección de spam en la recepción de correo, y funciona francamente bien. El problema es que, por lo que he visto, únicamente puede integrarse si SA está instalado en el mismo equipo y para mi, que quiero mantener el equipo de trabajo lo más ligero posible, eso es un problema.

Pensando un poco dí con la solución: instalar SA en un equipo remoto, teniendo configurados los equipos para que haya confianza y se permita la ejecución remota de comandos a través de SSH sin necesidad de contraseña ( Enrique Barbeito escribió una estupenda anotación sobre el tema hace tiempo ).

La configuración en Evolution es sencilla: primero habrá que crear un script que simule ser el binario de SA en el equipo cliente ( /usr/bin/spamassassin ):

#!/bin/bash
ssh usuario@servidor /usr/bin/spamassassin -e $1

Luego, sólo hay que añadir una regla para que ejecute el comando como se puede ver en esta captura de pantalla.

Si alguien conoce una mejor solución, será bienvenida.