
¿Cómo configuraría Postfix para que ejecute un comando cuando reciba un correo electrónico a una dirección/nombre de usuario determinado, o quizás un correo electrónico que contenga algún texto?
Respuesta1
No hay ninguna manera de hacer coincidir el texto, pero puedes reenviar todos los mensajes a una dirección de un programa.
Debe agregar un alias al archivo de alias de su sistema, generalmente /etc/postfix/aliases o al archivo .forward del usuario. La primera opción tiene mayor flexibilidad, ya que puede tener un alias para una dirección que en realidad no se asigna a una cuenta.
El alias debería ser algo como
|/usr/local/bin/command
Deberías dar una ruta completa, porque no sabes el contexto en el que se ejecutará.
Si su programa sale con 67, entonces el mensaje será rebotado como usuario desconocido, 0 descartará el mensaje. Se volverá a intentar cualquier otra cosa hasta que el mensaje expire y rebote.
Tenga cuidado con la seguridad: básicamente está permitiendo que cualquier persona en Internet ejecute un programa en su sistema, así que no confíe en la entrada del usuario y desinféctelo antes de usarlo.
Respuesta2
Ha pasado un tiempo desde que jugué mucho con Postfix, pero IIRC generalmente venía incluido con un MDA bastante básico, pero aún podía entender archivos .forward en el directorio de inicio de los usuarios, necesitarías leer los documentos y tu configuración de Postfix. para encontrar qué MDA está configurado.
El padre de todos los MDA (en mi humilde opinión) es procmail. Puede sustituir procmail por el MDA actual en su main.cf; consultehttp://www.postfix.org/faq.html#procmail
Procmail lee un archivo en el directorio de inicio del usuario para determinar cómo procesar los mensajes. Esto va mucho más allá de ser simplemente un archivo de configuración: es más como un lenguaje de programación. Ciertamente es capaz de lo que le pides.
C.