En este post voy a explicar como añadir un filtro o rutina a Postfix. Esto nos puede servir para desarrollar cualquier aplicación basada en el correo electrónico, como puede ser el control remoto de tu maquina, administración de contenidos de una Web u otro tipo de aplicaciones gestionadas a trabes del correo electrónico.
La configuración de postfix en una maquina GNU/Linux es bastante sencilla, basta con hacer:
y configurar Postfix para que acepte correos de nuestros dominios editando el archivo /etc/postfix/main.cf
Una vez comprobado que recibimos nuestro correo correctamente pasamos a configurar Postfix para que ejecute un script cada vez que llegue un correo. Por tanto editaremos el archivo /etc/postfix/master.cf de la siguiente manera:
Al principio del documento añadiremos (en negrita):
Para decirle que aplique la rutina filter por cada conexión smtp entrante.
Abajo definimos la rutina filter de la siguiente manera:
donde argv será la ruta al script que lanzara nuestra aplicación.
Un ejemplo de script podría ser este:
Donde podríamos llamar a nuestro script en python filter.py que parsearia el mensaje realizando las diferentes funciones. Por ejemplo podríamos recoger el subject del mensaje y lanzarlo como un comando. De tal manera que si mandáramos un mensaje con el subject “halt” podríamos apagar la maquina de forma remota.
Veo que te has metido con ese gran monstruo que es Postfix… a mi me intimidó en su momento y le cogí apego a qmail.
Está muy bien el post, muchas veces usamos métodos complicados para llevar a cabo remotamente tareas sencillas (como iniciar o cerrar programas), cuando con un simple mail podríamos solucionarlo, y con la ventaja de que el correo electrónico es universalmente accesible (a diferencia de las soluciones basadas en web, o para qué hablar de VNC o similares…)
Mira por donde, igual reinstalo postfix en el server…
Hola…quisiera hacerles una consulta.
Tengo un servidor de correo montado con Postfix, el cual hace relay con el de mi proveedor, pero lo que me interesa es hacer un filtro o script para cuando me llegue un mensaje de una direccion mail determinada que en el Subject contenga una direccion mail cualquiera, mi server postfix automaticamente reenvie el correo hacia la direccion mail que viene escrita en el Subject.
Con un script de python puedes leer el correo acceder a la cabecera subject y mediante una expresión regular comprobar que el asunto tiene el formato indicado…
por ejemplo si accederíamos al subject del mensaje:
3 Responses to Lanzar rutinas con Postfix
Skinner febrero 16, 2009
Aupa!
Veo que te has metido con ese gran monstruo que es Postfix… a mi me intimidó en su momento y le cogí apego a qmail.
Está muy bien el post, muchas veces usamos métodos complicados para llevar a cabo remotamente tareas sencillas (como iniciar o cerrar programas), cuando con un simple mail podríamos solucionarlo, y con la ventaja de que el correo electrónico es universalmente accesible (a diferencia de las soluciones basadas en web, o para qué hablar de VNC o similares…)
Mira por donde, igual reinstalo postfix en el server…
Agur!
Napster septiembre 4, 2011
Hola…quisiera hacerles una consulta.
Tengo un servidor de correo montado con Postfix, el cual hace relay con el de mi proveedor, pero lo que me interesa es hacer un filtro o script para cuando me llegue un mensaje de una direccion mail determinada que en el Subject contenga una direccion mail cualquiera, mi server postfix automaticamente reenvie el correo hacia la direccion mail que viene escrita en el Subject.
Agradeceria cualquier comentario al respecto
Iker septiembre 5, 2011
Con un script de python puedes leer el correo acceder a la cabecera subject y mediante una expresión regular comprobar que el asunto tiene el formato indicado…
por ejemplo si accederíamos al subject del mensaje:
import email msg = email.message_from_string(texto_del_mail) asunto = msgt.get("subject")http://docs.python.org/library/email.parser.html
http://docs.python.org/library/email.message.html#email.message.Message