Filtrar emails por “Asunto:” en Postfix

En el trabajo tengo una cuenta de correo de administración a la que llegan correos desde cientos de servidores: mensajes de tareas ejecutadas correctamente, warnings o incluso errores al ejecutar alguna tarea de cron. Son correos generados por diferentes aplicaciones, y llegan a una única cuenta, ya que muchas de esas tareas se ejecutan como dependientes del usuario root.
Afortunadamente, gracias al servidor de correo Postfix, podemos filtrar esos mensajes para enviarlo a distintos destinatarios dependiendo del contenido de los mismos, y así repartir las tareas de administración entre varias personas.

Postfix incluye un módulo de filtrado de correos, que nos permite filtrar tanto por el contenido de las cabeceras como del cuerpo de los mensajes. Para hacer uso de uno u otro, tenemos que emplear las directivas header_checks o body_checks respectivamente. En mi caso, estoy interesado en filtrar los correos dependiendo del campo Asunto de los correos electrónicos que llegan a la cuenta de administración, por lo que usaré la directiva de configuración header_checks. Por tanto, debemos incluir una línea como la siguiente en el archivo /etc/postfix/main.cf:

header_checks = pcre:/etc/postfix/header_checks.pcre

Con esta línea estamos indicando que compruebe las cabeceras de los correos entrantes, comparándolas con expresiones regulares PCRE que están escritas en el archivo /etc/postfix/header_checks.pcre. Para que funcione este módulo, debemos haber compilado Postfix con el soporte correspondiente, o si usáis Debian como yo, instalar el paquete postfix-pcre.

El siguiente paso es crear este archivo /etc/postfix/header_checks.pcre, que en mi caso tiene el siguiente contenido:

/^Subject:.*cfengine-cron.sh$/
   REDIRECT cfengine@midominio.es

Con esto consigo que todos los mensajes que incluyan en el campo Subject (Asunto) de la cabecera el nombre de script cfengine-cron.sh sean reenviados a la cuenta cfengine@midominio.es en vez de la cuenta de administración general. No solo puede realizarse la redirección a una cuenta de correo, sino que permite otras acciones que se pueden consultar en la página de documentación de header_checks.

El último paso será reiniciar el servicio Postfix, y así, la persona encargada de administrar cfengine podrá configurar una cuenta de correo donde recibirá todas las incidencias que ocurran con la aplicación, y liberará la cuenta de administración general de ese correo.

~ por ortegaga en 26 Septiembre 2008.

Escribe un comentario