Basta usare formail
. formail
è un programma in grado di elaborare la casella di posta, eseguire alcune azioni per ciascun messaggio nella casella di posta, separare i messaggi e così via.
Maggiori informazioni:http://www.manpagez.com/man/1/formail/
Se vuoi semplicemente dividere una casella di posta in file separati, suggerirei una soluzione del genere:
$ cat $MAIL | formail -ds sh -c 'cat > msg.$FILENO'
Dall'uomo:
FILENO
While splitting, formail assigns the message number currently
being output to this variable. By presetting FILENO, you can
change the initial message number being used and the width of the
zero-padded output. If FILENO is unset it will default to 000.
If FILENO is non-empty and does not contain a number, FILENO gen-
eration is disabled.
Git (git mailsplit
) può fare altrettanto. Ad esempio,
wget ftp://lists.gnu.org/bug-tar/2014-09
git mailsplit -o. 2014-09
Se non hai formail, puoi anche utilizzare questo oneliner Perl (copiato da qui e appena testato su una casella di posta Thunderbird che dovevo dividere)
perl -pe 'open STDOUT, ">out".++$n if /^From /' < $IN > before_first
oppure, per avere numeri con 0:
perl -pe 'open STDOUT, sprintf(">m%05d.mbx", ++$n) if /^From /' < $IN > before-first