我的 CentOS 中的 sendmail 有问题(未安装 postfix),该文件/var/spool/邮件/根丢失,我尝试重新启动 sendmail 并使用以下命令从 shell 发送邮件:
mail -s "test mail" root </dev/null
/var/log/mailllog:
Apr 1 10:30:14 ip-172-31-41-71 sendmail[20477]: s31AUEPJ020477: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=302
19, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s31AUEN9020478 Message accepted for delivery
我还尝试创建根文件,但发送测试电子邮件后没有写入任何内容。
答案1
首先/var/spool/mail/root
是邮件假脱机文件,发送给本地 root 用户的邮件将写入其中。如果 root 的第一封邮件进入系统时此文件不存在,则会自动创建。因此,如果该文件尚不存在,我认为需要检查不同的原因:
- 中的不当许可
/var/spool/mail/root
。的示例权限mail
:drwxrwsrwt
允许任何人在其中写入,但不能触摸其他人拥有的文件(粘性位 -t
) - 文件系统
/var/spool/mail
可能已满 - 例如,由于启动时出现某些文件系统错误,文件系统以
/var/spool/mail
只读方式挂载。 - Sendmail 未配置为将本地邮件传送到
/var/spool/mail
。但你没有分享你的 Sendmail 配置,所以我不能确定。例如,如果要使用 传递本地邮件procmail
,则可以将邮件写入完全不同的目录中,具体取决于procmail
配置(/etc/procmailrc
或/root/.promailrc
)。