sendmail电子邮件存储在哪里?

我正在尝试为sendmail构build一个自动回复脚本(不,我不想使用预先构build的脚本),但我似乎无法在我的服务器上find收到的电子邮件的位置。 我必须指定我的configuration不是默认configuration。

我已经看过/root ,那里没有邮件文件夹。 (我没有任何其他用户比根)。 我查看过/var/mail/root ,只有一些日志是通过邮件发给我的,而不是我从用户那里收到的外部邮件。

我检查了/var/log/maillog ,但没有错误。

我没有想法在哪里看。 任何人都可以帮我吗?

sendmail(邮件传输代理 – MTA)将邮件存储在configuration存储邮件的地方。 但是MTA 存储当前正在排队的邮件 – 通过邮件传送代理(MDA)处理将邮件传送到用户可以访问的位置。 尽pipesendmail(和其他MTA)可以作为MDA使用,但事实并非如此。

无论如何,试图访问邮件文件不是实现自动回复的正确方法。

这应该在MTA(即milter)或MDA中作为filter来完成。 Milter API是专门为此devise的 – 而且可能已经有工具可以满足您的要求而不需要修改。

如果你现在的MDA是procmail,那么你很幸运 – 这为处理邮件提供了巨大的灵活性(事实上它本身就是一种编程语言)。 再次在互联网上有很多代码可以满足您的需求 (AFAIK没有中央仓库的procmail食谱 – 但尝试谷歌)。

即使是基本的.forward机制也可以用来实现这一点 – 但我build议不要这样做 – 通过procmail路由,你可以把消息分离出来,这样交付就不依赖于/由你的脚本实现。

如果您configuration了其他默认目录,则应该查看/etc/mail/sendmail.cf以查看path设置。

这不仅在操作系统分发之间有所不同,甚至不同版本的sendmail之间的默认目录也发生了变化。 总之,只是为了告诉你默认值,我们需要知道操作系统版本和sendmail版本。 默认值为/ var / spool / mail / $ USERNAME,如果用户使用其他应用程序读取邮件,通常会将其移动到$ HOME / mbox。

以下是常用邮件目录列表:

  • 在/ var /邮件/ $ USERNAME
  • 在/ var / spool / mail中/ $ USERNAME
  • $ HOME / MBOX
  • $ HOME /邮件
  • $ HOME / Maildir的

这取决于它是如何configuration的,但通常的地方是/var/spool/mail或者一些发行版/var/mail 。 如果这两个地方都没有,请告诉我们,我们将开始挖掘