新規ユーザメールが届かない

 Postfix を使っていて Procmail で配送した場合、新規ユーザのメールが送れないことがあります。この原因は、スプールファイルが作れない場合があります。
これは、postfix 以外でメールを配送しようとするとエラーとなるようです。セキュリティからの配慮だとは思うのですが、 spamassassin 等を使う場合は不便なので解決方法を記述してみます。

----------
postfix-1.1.12-0vl0.26
procmail-3.22-0vl2
----------

【postfix だけを使う場合】
 procmail を使わなくてもいいという場合もありますので、解決方法を書いておきます。
1:main.cf を編集します。
2:「mailbox_command = /usr/bin/procmail -a $DOMAIN -d $LOGNAME」をコメントアウトします。
3:postfix を再起動して完了です。

-----------------------------------------------------------
【 procmail を修正する】
 procmail に setuid/setgid がたっていないことが一番の原因です。
ls -l /usr/bin/procmail としたときに下記のようなパーミッションがいけないようです。
-rwxr-xr-x 1 root mail 77548 Oct 3 2002 procmail
1: setuid を設定する
   chmod u+sx /usr/bin/procmail
2: setgid を設定する
   chmod g+sx /usr/bin/procmail

(注意) この設定をすると、各ユーザからの実行が可能となることを忘れずに

-----------------------------------------------------------
【スプールポイントを修正する】
 スプールするポイントに sticky bit というものを立てます。各ユーザごとにスプールしている場合は、ちょっとわかりません。m(__)m
1:chmod 1777 /var/spool/mail と入力します。するとディレクトリのパーミッションを見ると
   drwxrwxrwt 3 root mail 4096 Jan 26 22:52 mail
と、最後に「t」と追加されたことがわかると思います。
このパーミッションは誰でも読み書きできるが、削除はユーザのみということです。

参考URL http://edge.zive.net/linux/setuid.htm

完了! 2003/07/27記述

Let's PC の Topに戻る
ホームページのTopに戻る