procmailかませるとmbox形式になってしまう

レンタルサーバの移行作業してます。

ちょっと躓いた事があったのでメモ。

postfix + dovecotという構成で、久しぶりにメールサーバを新規構築。 procmail使うので、.forwardでprocmail咬ませた途端にメールが到着しなくなった。

maillog見てみると、何故か/var/mail/にmbox形式のファイルを作ろうとしている。

can’t create user output file.  
Command output: procmail: Couldn’t create “/var/mail/xxx”

postfix的には、Maildir形式で、保存先は~/Maildirになっているのに。

.forwardを無効にすると、~/Maildirに到着する事から、procmailを通過した後、mbox形式で保存しようとしているようだ。

色々と検索してみる。

「困ってます。メールが届きません。Couldn’t create…」

同じ症状かもしれない人がいた。途中、親切な人が「procmailにSetUIDしてみて」と教えていて、

「試したらエラーにならなくなったけど、メーラで受信しても受信しない。.forwardで携帯に転送するのは成功しているのに」

とある。ああ、これは、メーラでの受信は~/Maildirを参照しているのに対し、実際のメールは/var/mailにmbox形式で保存されているからだ。同じ症状だね。

そのスレッドの結末は、.procmailrcにMAILDIRとDEFAULTを定義する事で解決していた。

移行元のサーバでは、/etc/procmailrcにMAILDIRとDEFAULTが定義されていた。 移行先のサーバでは、/etc/procmailrcそのものがない(yum installで作られなかったのかな?)。

/etc/procmailrcを生成し、以下を記述して解決。

MAILDIR=$HOME/Maildir/  
DEFAULT=$MAILDIR