vine-users ML アーカイブ



[vine-users:061038] Re: sendmail でエラー時に root へ転送させない方法

  • From: "Voice" <voice@xxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:061038] Re: sendmail でエラー時に root へ転送させない方法
  • Date: Tue, 24 Jun 2003 15:54:08 +0900
奥村です。


> > /dev/null へメールを送ると、sendmail 自体は正常終了するように
> > 思えます。
> > それですと、cgi でエラーを検出できないので。。。。
>
> エラーはどうやって検出しているのでしょうか?
>

perl にて以下のようにしています。

open( OUT, "$sendmail -t" );

 メール作成処理;

close(OUT);
if( $? )
{
   エラー処理;
}

$? はperlの特殊変数で「system(), パイプクローズなどの終了
ステータスコード。」らしいです。今回初めて使います。


>
> > 試しにaliasesファイルを変更してみたところ、rootへエラーメールの
> > 送信を行ってしまいました。
> > どうやら、/etc/aliases.db ファイルをチェックしているようです。
> > ( alias database /etc/aliases.db out of date メッセージが
> > maillog に出力されるようになりました。。。)
>
> aliasesファイルを変更した後にはnewaliasesコマンドを実行する必要がありま
す。
>

ありがとうございます。お恥かしいかぎりです。


>
> > エラーが発生しても、エラーメール自体を全く送信しない設定が
> > あればと思いました。
>
> ですから何故そういう事が必要なのでしょうか。
> # 上記のエラー検出方法との兼ね合いの問題かと思いますが...


ブラウザから登録されたメールアドレスは全てDBに登録しています。

送信エラーが発生したデータはDBに登録しないようにしたいというのが
そもそもの発端です。

そして上記の
if( $? )
{
   エラー処理;
}
を入れたのですが、「正常終了」としてエラー処理を実行しません。

理由を調べた所、maillog の最後が root にメールを送っている為
stat=Sent となっている為「正常終了」なのかもしれない推測しました。

それでrootへのエラーメール送信自体を行わなければ
その前のエラーを検出してDB登録を行わないようにできるのでは
と考えたからです。


また、今回たまたまrootのメールボックスを見たところ、
かなりエラーメールがたまっていました。

このままですと、定期的にrootのメールを削除しなければならず
不都合が生じると思い対応しています。


私の根本的な考え違いな所もあるかも知れません。
お気づきの点がございましたら、ご指摘頂ければ幸いです。

よろしくお願いします。