使用bash提取/保存邮件附件


30

使用普通bash工具(即内置工具或常用命令行工具)

  • 可能的,并且
  • 怎么样

提取/保存电子邮件附件?

例如,假设我有一个夜间报告,该报告是通过电子邮件发送的,但是是几个日志文件的zip存档。我想将所有这些zip文件保存到备份目录中。我该怎么做?


“普通的bash工具”-是指仅使用bash内置的功能(即,您将在bash手册页中找到的功能),还是更一般地说,是可以添加到bash shell脚本中的命令行工具?
道格·哈里斯

@道格·哈里斯(Doug Harris)-要么..如果我可以打电话mail去做,或者以其他方式保存附件,那也很好:)
沃伦(

Answers:


29

如果您希望实现可移植性,请注意mail(1)和的不同版本mailx(1)。有一个POSIX mailx命令,但要求很少。而且我似乎都没有一个解析附件的实现。

您可能拥有mpack软件包。它的munpack命令将MIME消息的所有部分保存到单独的文件中,然后您要做的就是保存有趣的部分并清理其余部分。

还有metamail。的等效munpackIS metamail -wy


另外要补充一点,如果您还想在使用时提取电子邮件的文本MIME部分,请munpack使用'-t'选项:munpack -t email_file
Pierz

感谢您提供有关的信息metamail。您能帮我解决这个问题吗?
乔治,


2
  • 是的可能

  • 这是HOW(来自此处的资源)

查找包含文件的目录| 在读取文件时;做

创建tempdir并在那里复制文件

在文件上运行munpack并将附件复制到其他位置

销毁tempdir(内容)

做完了


如果有人要我在此处粘贴Perl脚本,则只需发表评论
subanki 2010年

1
如果您会这么友善(显然是将其归因于您找到它的位置:))
沃伦2010年

1
刚读了脚本……那真是很多的perl!
沃伦

因此,您确定要我将其包括在我的答案中,它将变得很长。
subanki 2010年

不要在此处粘贴,在这种情况下,从原始来源进行复制会更好:)
沃伦(Warren)2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.