我希望将我的收件箱分成单独的文件(每个邮件一个文件)通过bash命令或者简单的Java程序。如何实现?
祝好,谢谢。
祝好,谢谢。
只需使用formail
即可。 formail
是一个可以处理邮箱、对邮箱中的每个消息运行一些操作、将消息分离等的程序。
更多信息:http://www.manpagez.com/man/1/formail/
如果您只想将邮箱分割成单独的文件,我建议使用以下解决方案:
$ cat $MAIL | formail -ds sh -c 'cat > msg.$FILENO'
来自man手册:
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.
注意:formail
也包含在procmail中-https://github.com/BuGlessRB/procmail。
formail
是我计算机上 procmail
的一部分(可通过 apt-get install procmail
安装)。 - Att RighFrom ???@??? Fri Oct 16 10:49:27 1998
- 要么只有"-"和一个日期,适用于Thunderbird文件:From - Tue Jul 31 13:23:45 2007
所以你可以使用这个Perl oneliner。perl -pe 'open STDOUT, ">out".++$n if /^From (-|\?{3}\@\?{3}) /' < $IN
perl -pe 'open STDOUT, sprintf(">m%06d.eml", ++$n) if /^From (-|\?{3}\@\?{3}) /' < $IN
还有一个专门的git
命令用于此操作:
mkdir messages
git mailsplit -omessages mbox