よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

maillog に "error writing message: File too large"が出力されていたら

■前提

smtpサーバ postfix
メール格納形式 mbox

/var/log/maillog を確認すると、タイトルのようなログが出力されていました。

status=bounced (cannot update mailbox /var/spool/mail/"ユーザ名" for user "ユーザ名". error writing message: File too large)

このエラーメッセージを読むと、"ユーザ名"に送信しようとしているメッセージの容量が大きすぎて、ユーザのmailboxに収まりきれていないのかなぁと思うでしょう。
ただ、今回は、cronの実行ログを内部ユーザに通知することころ、上記のエラーが発生していたので、メッセージ容量が大きすぎてエラーが発生しているのではないだろうという推測はできました。

では、何が原因で上記のエラーが発生していたかというと、"ユーザ名"のmailboxのサイズが利用可能上限値に達していたためでした。
そのため、メッセージサイズが数バイトのものであっても受信できなくなっていました。
ちなみにmailbox形式の場合、ユーザに割り当てられるmaillboxの上限値はデフォルトで50MBです。

対応としては、 /var/spool/mail/"ユーザ名" のサイズを確認し、上限に達していたら、ファイルの中身を空にするなり、mailboxの上限値を変更したりしましょう。
mailboxの上限値を変更したい場合は、/etc/postfix/main.cf の以下の設定をし、postfixを再起動しましょう。

mailbox_size_limit = 51200000

※デフォルトの50MBを設定しています。