CentOS 4.9で
sendmail-8.13.1-6.el4を使用しています。
最近、不特定のユーザで、メールボックスがおかしくなり、
メールが受信できない症状があります。
該当ユーザの
/var/spool/mail/foo
を見ると、一行目に、
(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,^[(B
があり、これを消してやると、復帰します。
原因は何でしょうか?
また、対策はありますか?
めんどくさいと思いますがメアド変更したほうがいいと思いますよ
必要なメールアドレスで、変更はちょっと難しいのです。
また、特定のメールアドレスだけではないのです。
受信拒否はできないですか?
ええと、どこからの受診拒否ですか?
不特定なメールボックスが壊れるのが問題なのです。
特定のメールアドレスや特定の送信元が問題じゃないのです。
質問文を再確認してください。
大昔(今から 15 年以上前)に、とある商用 UNIX で同様の現象に遭遇した事はあります。
で、当時は原因不明のままマシンがリプレースになったので、原因は突き止めていませんが...。
一つ、確認したいことがあるのですが、メールボックスの1行目に現れる不正な文字列は、いつも同じですか? いつも同じであれば、このメールボックスを参照する何らかのプログラムが悪さをしている可能性があります。
ちなみに、私が経験したのは、mbox の中身が途中から始まるような障害で、壊れ方に決まりは無かったです。
回避策で申し訳ないのですが、「mbox 形式をやめる」ことで、障害は回避出来るかもしれません。
もともと mbox 形式は、ファイルの排他処理が必要になり、そこにアクセスプログラムがきちんと排他処理に対応していないと壊れやすい、という弱点があります。例えば sendmail 側に非がなくても、POP、IMAP サーバ側に問題があれば、壊れてしまいます。CentOS 4.9 に標準で付いているプログラムで問題が発生するのは、ちょっと考えづらいですが、OS 付属以外の何かを使っていると、こういった問題が発生する可能性はあります。
CentOS 4.9 だと、POP/IMAP サーバとして Dovecot の 0.99 が標準だったと思いますが、であれば、メールボックスとして maildir 形式を使う事が出来ると思います。
メールサーバー構築(Postfix+Dovecot) - CentOSで自宅サーバー構築
上記ページでは sendmail の代わりに postfix を使っていますが、sendmail でもメールボックスへの配信プログラムが procmail(4.9 のデフォルトも、そうなっていたと思うんだけど、ちょっと自信なし)になっていれば、/etc/procmail で
MAILDIR=$HOME/Maildir/
といった具合にすると、Maildir 形式になります。
でも、原因は....。もし、壊れた「一行目」の内容が、その時によってバラバラだったら、意外にディスク周り(例えば RAID 関係)という線も無くは無いかなぁ。
ご丁寧な回答ありがとうございます。
> いつも同じですか?
似ているのですが、違うときもあります。
>Dovecot
そのとおりです。
sendmail + Dovecotで運用しています。
> mbox 形式をやめること
自分でも調べていたのですが、こっちのほうが良いかもしれませんね。
ただ、アカウントが数百以上あって、移行タイミングが難しいなぁと悩んでします。
もう少し、考えてみます。
ありがとうございます。
チェックソフトで、お奨めがあれば、教えてください。