Digamos que tengo 5 mensajes en /var/mail/ y quiero leer un mensaje a la vez y luego hacer una búsqueda de cadenas en ese correo antes de pasar al siguiente mensaje. ¿Hay algún comando que pueda usar para analizar un mensaje a la vez?
Estoy buscando escribir un script bash que lea todos los mensajes en un archivo mbox y luego los lea uno a la vez para poder extraer Asunto, Para, De y Estado del mensaje (código de recuperación). Mi plan era usar grepmail para obtener el conteo de correos electrónicos en el archivo y luego usar este conteo en un bucle for para obtener un correo a la vez y realizar operaciones en el texto. Algo como:
$count = grepmail -r . /var/mail/user | awk '{print $2}'
for($i=1;$i<=$count;$i++) {
$content = *GetMessage* -number $i /var/mail/user
...
Do string operation on this message & save to $DelimitedData
...
}
$Delimiteddata
No puedo entender cómo recoger un solo mensaje a la vez para realizar una operación de cadena en ellos. ¿Puede alguien guiarme qué comando/programa puede ayudarme a hacer esto de forma no interactiva?
Respuesta aceptada:
El formail
La herramienta de procmail (disponible en cualquier distribución, es un clásico) está diseñada precisamente para este propósito.
Uso básico:
formail -s myprogram --option
ejecuta myprogram --option
en cada correo a su vez. El programa recibe cada correo en su entrada estándar.