将unix邮件(由sendmail接收)复制到linux目录(单独)


-3

有没有人知道一种方法来复制所有新到的电子邮件(在Fedora Linux上),存储在Linux目录中(不是在其他一些邮件文件夹中,而是在Linux文件系统目录中)?

我们使用Procmail作为传递系统。我查看了may docs,但它们都只显示了两种关于复制的模式:

  1. 附加到mail.bkp - 不确定为什么要将所有邮件附加到一个文件中?
  2. 将所有内容放在/ dev / null中 - 以处理垃圾邮件

我需要'轻量级'机制来将所有新邮件复制/存档到Linux文件系统中

  • /home/username/data/archive/mail1.x
  • /home/username/data/archive/mail2.x
  • /home/username/data/archive/mail3.x

而且我打算使用Java目录监听器并行读取这些电子邮件。

请给我宝贵的建议。

Answers:


2

您的问题的解决方案是使用您的procmailrc文件将邮件的副本保存为Maildir格式。

Maildir将每封邮件保存为单独的文件,这可以解决您的一个问题。此外,如果您复制邮件,它仍将转到其他现有位置:

你的procmailrc会在顶部附近有以下(或类似的行):

:0c:
$HOME/Maildir/

您仍需要Maildir在主目录中创建该文件夹。


我在.procmailrc文件中试过这个。但我看到新的电子邮件,并没有被复制到/ home / username / data / archive ..

但它被复制到了/home/username/Maildir/new/,对吗?

我在.procmailrc中的条目看起来像这样:0c: $/home/username/data/archive - 我没有看到那里复制的新邮件

美元符号存在错误,锁定文件(后面的第二个冒号:0c)是多余的。注意变量$HOME和文字之间的区别,绝对路径/home/username (which the value of $ HOME`通常可以是)。
2015年

你是对的,这是一个错字。我有一个绝对的dir路径

0

传送到目录只是为了拥有一个精心设计的系统来监视该目录是相当尴尬的。如果您的Java程序可以读取标准输入,只需直接管道即可。

:0
| /path/to/java -crash -boom -bang -coredump=always

我不想从procmailrc调用java的原因是 - 显然它正在为每个电子邮件调用java ..创建这么多虚拟机,每个处理1个电子邮件.. :( ..所以我只想复制所有电子邮件在一个dir然后处理许多邮件..
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.