メインのドメインを、domain.co.jp、バーチャルドメインを、virtual.co.jpとして説明する。

このディレクトリーにバーチャルドメインのvirtual.co.jpのhtmlや画像ファイル。
/home/*****/www/virtual.co.jp

このディレクトリーにバーチャルドメインのvirtual.co.jpのcgi関係のファイル。
/home/*****/www/cgi-bin

このような環境で、お問合せフォームなどからメールが送信できない場合の設定確認。

cgi-binに設置したcgiは文法的にも間違いが無くパーミッションも755に設定してあり、動作に必要なファイルもきちんと存在する。

症状としては、お問合せフォームにデータを入力し次へのボタンをクリックすると問題なく確認画面が表示される。
つまり、cgiは、動作している状態。

次に、確認画面から送信ボタンをクリックするとエラーとなる。


この場合、cgiに原因があるのではと、疑いたくなるがsendmailの設定をチェックする必要がある。

バーチャルドメインの場合、virtusertable(/etc/mail/virtusertable)を設定していると思うが、下記の記述が今回のエラーの原因になっている可能性がある。

@domain.co.jp error:nouser User unknown

#@domain.co.jp error:nouser User unknown

つまり、メインのドメインに無いユーザーの場合はエラーにしてしまうと言う記述でこれを無効にすればいいわけである。


修正したらハッシュ化を忘れずに。

makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable

念のため、virtusertable.dbが更新されているか確認。

これで、sendmailを再起動とかしなくても設定は即時反映される。