sendmail 电子邮件存储在哪里?

Edu*_*uca 10 email sendmail

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

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

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

我不知道在哪里看。有人可以帮助我吗?

Pau*_*aul 6

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

这不仅在操作系统发行版之间有所不同,甚至不同版本的 sendmail 之间的默认目录也发生了变化。简而言之,为了让我们告诉您默认值,我们需要知道操作系统版本和 sendmail 版本。邮件投递的默认值是 /var/spool/mail/$USERNAME,然后如果用户使用另一个应用程序阅读邮件,它通常会移动到 $HOME/mbox。

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

  • /var/mail/$USERNAME
  • /var/spool/mail/$USERNAME
  • $HOME/mbox
  • $HOME/邮箱
  • $HOME/邮件目录


sym*_*ean 6

sendmail(邮件传输代理 - MTA)将邮件存储在配置为存储邮件的位置。但是 MTA存储它当前正在排队的邮件 - 将邮件传递到用户可以访问的位置由邮件传递代理 (MDA) 处理。尽管 sendmail(和其他 MTA)可以充当 MDA,但这种情况非常不寻常。

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

这应该作为 MTA(即 milter)或 MDA 中的过滤器来完成。该雄鱼API是专门为此设计的-有可能已经可用的工具这将满足任何修改您的要求。

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

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