Risposte:
formail , parte di procmail (e probabilmente già disponibile sul tuo sistema) può prendere una cassetta postale, dividerla in messaggi e quindi eseguire un comando su ciascuna. Dalla pagina man:
-s The input will be split up into separate mail messages, and piped
into a program one by one (a new program is started for every
part). -s has to be the last option specified, the first argument
following it is expected to be the name of a program, any other
arguments will be passed along to it. If you omit the program,
then formail will simply concatenate the split mails on stdout
again. See FILENO.
Quindi puoi fare quello che penso tu voglia in questo modo:
formail -s /usr/sbin/sendmail -oi -t < /var/mail/root
ls /var/mail
; do formail -s / usr / sbin / sendmail -oi $ foo <./$foo; done" dovrebbe eseguire il loop di ogni file e consegnare localmente.
mutt -f /var/mail/www-data
Quindi all'interno di mutt ...
T.*
;b
T lo mette in modalità tagging e. * Tagga tutti i messaggi. Il punto e virgola applica il comando successivo a tutti i messaggi con tag e infine b "rimbalza" i messaggi a un indirizzo richiesto.
A memoria, penso anche io
D.*
o
T.*
;d
Svuota quindi la cassetta postale.
I file di cassette postali unix / var / spool / mail / xxx sono semplici file di testo in cui i messaggi di posta vengono conservati in sequenza. Ogni messaggio di posta inizia con una riga "Da" (che non fa parte del messaggio) con mittente e data di ricezione, quindi ottieni le intestazioni della posta, quindi il corpo della posta.
Fondamentalmente puoi semplicemente eseguire il ciclo sul file rilevando tali righe From ed estrarre tutti i messaggi, quindi inviarli utilizzando strumenti come modulo python smtp o modulo perl :: SMTP da cpan.
Se target è un'altra cassetta postale locale, puoi semplicemente aggiungere i messaggi (inclusa la linea Da) ad essa. Potresti persino aggiungere l'intera cassetta postale di root a un'altra cassetta postale se non ti interessa ricevere messaggi realmente mirati a root.
Dovrei avere degli script che lo fanno e pubblicherò degli esempi se lo desideri.
Il problema potrebbe essere quello di ottenere la vera destinazione del messaggio perché se finivano nella cassetta postale di root probabilmente erano indirizzati a root dall'inizio?