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