如何将邮箱拆分为单个文件?

我想通过bash命令将我的收件箱分成不同的文件(每个消息一个文件),或者可能是Java中的简单程序。 我该怎么做?

WBR,Thanx。

Solutions Collecting From Web of "如何将邮箱拆分为单个文件?"

只要使用formailformail是一个程序,它可以处理邮箱,为邮箱中的每个邮件运行一些操作,分离邮件等等。

更多信息: http : //www.manpagez.com/man/1/formail/

如果你只想分开一个邮箱分开文件,我会建议这样的解决方案:

 $ cat $MAIL | formail -ds sh -c 'cat > msg.$FILENO' 

从男人:

  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也可以做到这一点,例如

 wget ftp://lists.gnu.org/bug-tar/2014-09 git mailsplit -o. 2014-09 

如果你没有formail,你也可以使用这个Perl oneliner(从这里复制,并在我需要拆分的Thunderbird收件箱中测试)

 perl -pe 'open STDOUT, ">out".++$n if /^From /' < $IN > before_first 

或者,有0填充的数字:

 perl -pe 'open STDOUT, sprintf(">m%05d.mbx", ++$n) if /^From /' < $IN > before-first