使用命令行从收件箱下载附件

使用命令行从收件箱下载附件

请帮助我找出正确的程序来解决以下问题:

每天我都会收到一份以 PDF 附件形式通过电子邮件发送到我的收件箱的报告。主题相同,并且来自同一个电子邮件地址。我希望能够使用 fetchmail / getmail 等实用程序进入我的收件箱,匹配主题和发件人,然后将附件下载到特定文件。

请帮助我确定以下所需的程序:

  1. 连接到我的收件箱
  2. 扫描主题行和发件人行
  3. 从电子邮件下载附件
  4. 从收件箱中删除
  5. 将处理后的报告发送给新人员。

我运行 CentOS7,但任何 Linux 都可以胜任此任务。另外,我想使用命令行实用程序来完成此任务,而不是 Python 或 Ruby。

附加信息:

  • 我的电子邮件存储在 LAN 上的服务器上。
  • 我想我想在这里使用 IMAP(我想将电子邮件保留在服务器上并且只下载附件)
  • 我不需要查看附件,只需将它们下载到目录中即可。

很抱歉用这个问题打扰大家,但我对此进行了研究,但我似乎无法将拼图的各个部分拼凑在一起。如果您需要任何其他信息,请告诉我。

答案1

我会建议杂种狗。安装 mutt、procmail 和 fetchmail。默认情况下,邮件将存储在此处$HOME/Mail/(您的邮件目录;创建)。帮忙在 mutt 中设置 Gmail。设置获取邮件,程序邮件创建附件目录

将其添加到 $HOME/.procmailrc

ATTACH=`echo $HOME/Mail/Attachments`
:0 c
* ^To:.*[email protected]
* ^From.*[email protected]
* ^Subject.*SUBJECTNAME
| munpack -q -C $ATTACH

$ATTACH目录将包含过滤的附件(创建)。指定SUBJECTNAMEToFrom

答案2

如果您想更深入地了解 DIY,您可以通过采用相当清晰且直接的说明,在流程expect上使用脚本做一些事情opensslhttps://delog.wordpress.com/2011/05/10/access-imap-server-from-the-command-line-using-openssl/

它使用 IMAP over SSL 来访问邮箱并获取某些电子邮件的标头。您需要执行相同的操作,尽管只选择具有特殊标头的电子邮件来整理其索引,然后将其附件部分提取到文件中。

确切的脚本大约是 8 个带有相应expect节的 IMAP 命令。您可能需要参考 RFC3501 了解这些内容,尤其是 FETCH 命令的变体。

相关内容