rohaniのブログ

ゆるっと自然言語処理奴。ときどき工作系バイト。

メールサーバー管理者はメールボックスの残容量を気にしてあげないといけないらしい

ある日突然「メールが受け取れなくなった」

私の研究室ではMacを使っていて、研究室のメールはMac標準搭載のメーラを使っている。 メールサーバもシステムもずっと前の先輩が作ったものをそのまま使っていて、送信はSMTPサーバ、受信はPOPサーバとなっている。

で、今回突然メールが受け取れなくなった事件の際には、まずメーラの状態表示を見て、POPサーバとの接続で問題が起きていることを把握した。

メールサーバのログを確かめたらちゃんとエラーが出ていた

/var/log/mail.log/var/log/mail.infoを確かめた。すると、以下のようなエラーが出ていた。

-ERR [SYS/TEMP] Unable to copy mail spool file to temp pop dropbox /var/spool/pop/.USERNAME.pop: No space left on device (28) [pop_dropcopy.c:893]

なにやらデバイスに空きがないと言われている。 同じデバイスを共有しているはずの研究室仲間は普通にメールを使えていることから、物理デバイスのお話ではなさそうだなと判断。

ネットを調べていたら、各自に割り当てられたmailbox(という名のファイル)が満タンな時に出るエラーと似ていた

/var/spool/mail/USERNAMEに各自の受信メールを溜めておくファイルが存在する。 このファイルは予め容量の上限サイズが決められており、それを使い切るとそれ以上メールを受け取ることができなくてエラーを吐くらしい。サーバー管理者は、そのような状況にならないように適宜対応を図らなければならないとのこと。 うん...申し訳ない。

この問題は、このファイルをrmコマンドなどを使って削除してしまえば解決する。

rm /var/spool/mail/USERNAME

完全に消去してしまっても、新しいメールを受信すれば自動的に作成される。

(余談だが、私の環境では/var/mail/以下に/var/spool/mail/以下のmailboxのリンクが貼ってあって、最初にリンクの方を見つけたのでリンクの方をオリジナルだと思い込み、暫く戸惑った。)

mailboxを削除したら解決できた

mailboxファイルを削除したら、エラーも消え、メーラーでの送受信も問題なく行えるようになった。