CentOSではsendmailに問題があります(postfixがインストールされていません)。このファイル/var/スプール/メール/ルート紛失しました。以下を使用してsendmailを再起動し、シェルからメールを送信しようとしました。
mail -s "test mail" root </dev/null
/var/log/maillog:
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
1つ目/var/spool/mail/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