sendmail 电子邮件存储在哪里?

sendmail 电子邮件存储在哪里?

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

我查看过/root,那里没有邮件文件夹。(除了 root 之外,我没有其他用户)。我查看过/var/mail/root,那里只有一些通过邮件发送给我的日志,但没有我从用户那里收到的外部邮件。

我已检查过/var/log/maillog,没有错误。

我不知道该去哪里找。有人能帮我吗?

答案1

sendmail(邮件传输代理 - MTA)将邮件存储在配置为存储邮件的位置。但 MTA仅有的存储当前正在排队的邮件 - 将邮件传送到用户可以访问的位置由邮件传送代理 (MDA) 处理。虽然 sendmail(和其他 MTA)可以充当 MDA,但这种情况很少见。

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

这应该作为 MTA 中的过滤器(即混合器)或 MDA 来完成。混合 API是专门为此设计的 -可能已经是可用的工具无需修改即可满足您的要求。

如果您当前的 MDA 是 procmail,那么您很幸运 - 这为处理邮件消息提供了极大的灵活性(实际上它本身就是一种编程语言)。互联网上也有很多代码可以满足你的需求(据我所知,没有 procmail 配方的中央存储库 - 但可以尝试谷歌)。

甚至可以使用基本的 .forward 机制来实现这一点 - 但我建议不要这样做 - 沿着 procmail 路由,您可以分叉消息,以便传递不依赖于/由您的脚本实现。

答案2

如果您配置了默认目录以外的目录,您应该查看 /etc/mail/sendmail.cf 以查看路径设置为何。

这不仅因操作系统发行版而异,而且不同版本的 sendmail 之间的默认目录也不同。简而言之,为了告诉您默认设置,我们需要知道操作系统版本和 sendmail 版本。邮件投递的默认目录是 /var/spool/mail/$USERNAME,如果用户使用其他应用程序阅读邮件,通常会将其移动到 $HOME/mbox。

以下是常见邮件目录的列表:

  • /var/mail/$用户名
  • /var/spool/mail/$用户名
  • $HOME/mbox
  • $HOME/邮件
  • $HOME/Maildir

答案3

这取决于它的配置方式,但通常位于/var/spool/mail或某些发行版/var/mail。如果它不在这两个地方,请告诉我们,我们将开始挖掘

相关内容