新・闘わないプログラマ No.294

やってしもうた


知人から、「おまえんところに送ったメール、全部戻ってきてしまうんだけど」と言われたのが半月ほど前のこと。
「へ? こっちではちゃんと受け取れているよ。たまたまメールの配送ルートに問題があったんじゃないかなあ、うちにはちゃんとメール届いているよ」と返信したのですが、その後「やっぱり、お前のところに送ると戻って来ちゃうんだけど」と言われてしまいました。そこで、自分で自分宛てにテストメールを送ってみたり、職場からテストメールを送ってみたりしたのですが、それは戻ってきませんでした。そこで、その知人のところには「テストしてみたけど、問題なさそうだよ」と返信しました。やっぱり、知人の使っているプロバイダのメールサーバか、そこと私の使っているプロバイダのメールサーバの間で何か起こっているか、そんなところだろう、ま、そのうち直るだろう、と思ってあまり真剣に考えていなかったのですが…。
その後、2〜3日経っても現象が改善しないので、戻ってきたメールのメッセージをこちらに送ってもらって、調べてみることにしました。そしたら…。

    This is the Postfix program at host XXXXXXXX.home.

    I'm sorry to have to inform you that the message returned
    below could not be delivered to one or more destinations.

    For further assistance, please send mail to <postmaster>

    If you do so, please include this problem report. You can
    delete your own text from the message returned below.

    The Postfix program

    <XXXX@XXXXXXXX.home>: cannot access mailbox /var/spool/mail/XXXX for user
        XXXX. error writing message: File too large

あれ? この「XXXXXXXX.home」(「X」は伏字)って、家に置いてあるサーバのホスト名ではなかろうか。なんでこんなメールが送り主の元に戻るんだよ。ええと、なになに「cannot access mailbox /var/spool/mail/XXXX」で、「File too large」だって? やべー、これ、家のサーバのメールスプールがいっぱいになっちゃった? いや、あのサーバ機、/var/spoolはかなり大きく取っていたんだけどなあ、なぜだ?
このメールを読んだのが出先だったもので、とりあえず応急処置として、外から家のサーバに接続して、急いでPostfix(メールの配送を行うプログラム)を停止させました。あとは、家に帰ってから調べる、ということで。

家に帰って調べてみると、Postfixでのメールボックスの最大サイズを超えていたみたいです。そもそも、なぜ自宅のサーバでPostfixを使っているか、それによって私宛に届いたメールの配送を行っているか、と言いますと、実はこんなことをやっているからです。


                                      自宅サーバ

    [プロバイダのメールサーバ] ──→ [fetchmail] → [Postfix] → [自宅サーバのmailbox]

ううむ、いまいち分かりづらいですね。プロバイダのメールサーバに配送されてきた私宛のメールは、自宅サーバのfetchmailというプログラムで読み出し、そのメールをPostfix経由でサーバのメールボックスに入れます(その他、ある特定のメールは別のメールアドレスに転送もしています)。この処理は定期的に動かすようにしているのですが、基本的にこれはバックアップで、通常はこのメールボックスの内容を読み出すことはしません。ノートPCが直接プロバイダのメールサーバから読み出します。どちらも読み出し時にプロバイダのメールサーバからメールを削除するようなことはせず、それは別途やっている、という形にしてます。
なんでこんなややこしいことやっているか、というと、昔、ちょっとしたトラブルで受け取ったメールが読む前に消えちゃったことがあって、それ以来、バックアップを取っておこう、ということでこうしたわけです。
で、この自宅サーバのメールボックス、昔はディスク容量が少なかったせいもあって、入っているメールも時々消していたのですが、今はディスク容量が大きくなったので、そうそう頻繁に消す必要も無いかなあ、と手抜きをしてしまいました。そして、Postfixの設定の方に、メールボックスの最大サイズなんていう設定があることに全く気づいておりませんでした。
ところで、知人からのメールにはエラーメールが返ったのに、私のテストメールではエラーメールが返らなかったのは、私の送ったテストメールが短いメールだったために、受け取れてしまったようです。このせいで、問題に気づくのが遅れてしまいました。

さて、当面の対策として、とりあえずメールボックスを空にして、止めていたPostfixを起動させました。そして、ログを点検していると、よくわからないドメイン宛てにメールを配送しようとしているのに気づきました、それも大量に。
これってもしかして、キューに貯まっていたエラーメールを配送しようとしているのでは? やばいやばい、早急にキューのクリアを行わないと…でも、どうやるんだ? Postfixのキューの削除。何せ、ほとんど操作ことが無いので、コマンドとかよく知らないPostfix。いろいろ調べてみると、「postsuper -d ALL」で出来るとのこと。これでなんとか、エラーメールの配送も無くなって、めでたしめでたし。
しかし、ログを点検していたら、(あたりまえですが)spamメールにも律儀にエラーメールを返していたようで…ううむ、これでまたspamメールが増えるかなあ。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp