我想通过bash命令将我的收件箱拆分为单独的文件(每个邮件一个文件),或者可能是Java中的简单程序。我该怎么办?
WBR,Thanx。
答案 0 :(得分:9)
只需使用formail
即可。 formail
是一个程序,可以处理邮箱,为邮箱中的每封邮件运行一些操作,单独的邮件等等。
更多信息: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.
答案 1 :(得分:6)
Git也可以这样做,例如
wget ftp://lists.gnu.org/bug-tar/2014-09
git mailsplit -o. 2014-09
答案 2 :(得分:3)
如果你没有正式,你也可以使用这个Perl one liner(从here复制,刚刚在我需要拆分的Thunderbird Inbox上测试)
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