![将 unix 邮件(由 sendmail 接收)复制到 linux 目录(单独)](https://linux22.com/image/1447318/%E5%B0%86%20unix%20%E9%82%AE%E4%BB%B6%EF%BC%88%E7%94%B1%20sendmail%20%E6%8E%A5%E6%94%B6%EF%BC%89%E5%A4%8D%E5%88%B6%E5%88%B0%20linux%20%E7%9B%AE%E5%BD%95%EF%BC%88%E5%8D%95%E7%8B%AC%EF%BC%89.png)
是否有人知道如何复制所有新到达的电子邮件(在 Fedora Linux 上)并将其存储在 Linux 目录中(不是在其他邮件文件夹中,而是在 Linux 文件系统目录中)?
我们使用 Procmail 作为传送系统。我查看了许多文档,但它们都只显示了两种有关复制的模式:
- 附加到 mail.bkp——不确定为什么将所有邮件附加到一个文件中?
- 将所有内容放入/dev/null——处理垃圾邮件
我需要有一种“轻量级”机制来将所有新邮件复制/存档到 Linux 文件系统,例如
- /home/用户名/数据/存档/mail1.x
- /home/用户名/数据/存档/mail2.x
- /home/用户名/data/archive/mail3.x
然后我计划使用 Java 目录监听器来并行读取这些电子邮件。
请给我您宝贵的建议。
答案1
解决您的问题的方法是使用您的 procmailrc 文件将邮件的副本保存为 Maildir 格式。
Maildir 将每封邮件保存为单独的文件,这解决了您的一个问题。此外,如果您复制邮件,它仍将转到其他现有位置:
你的 procmailrc 顶部附近会有以下内容(或类似的行):
:0c:
$HOME/Maildir/
您仍然需要Maildir
在您的主目录中创建该文件夹。
答案2
仅向目录传递信息,然后让复杂的系统来监控该目录,这相当不方便。如果您的 Java 程序可以读取标准输入,则只需直接通过管道传输到该目录即可。
:0
| /path/to/java -crash -boom -bang -coredump=always