vine-users ML アーカイブ



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

  • From: Yamada Kazuo <yamada@xxxxxxxxxxxxx>
  • Subject: [vine-users:061040] Re: sendmail でエラー時に root へ転送させない方法
  • Date: Tue, 24 Jun 2003 16:28:23 +0900
やまだ@三宝寺です。

On Tue, 24 Jun 2003 15:54:08 +0900
"Voice" <voice@xxxxxxxxxxxxxxxxxx> wrote:

> > エラーはどうやって検出しているのでしょうか?
> >
> 
> perl にて以下のようにしています。
> 
> open( OUT, "$sendmail -t" );
> 
>  メール作成処理;
> 
> close(OUT);
> if( $? )
> {
>    エラー処理;
> }
> 
> $? はperlの特殊変数で「system(), パイプクローズなどの終了
> ステータスコード。」らしいです。今回初めて使います。

これではsendmailが一応受理して処理してしまえばエラーがないと言う事で通ります。


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

それは、そのホスト上以外のメールアドレスもあり得るのでしょうか?


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

存在しないメールアドレスという意味でしょうか。
であれば、sendmailのstatusコードを見て処理してもあまり意味がないでしょうね。

むしろUser Unknownで返ってきたリターンメールをプログラムで受け取るなりして。
その中に載っているメールアドレスをDBから消すべきです。
考えられているようなリアルタイムに判定する処理は、ローカルなユーザアカウント
くらいにしか通用しないと思いますが...


> また、今回たまたまrootのメールボックスを見たところ、
> かなりエラーメールがたまっていました。
> 
> このままですと、定期的にrootのメールを削除しなければならず
> 不都合が生じると思い対応しています。

溜まるのが嫌であれば、/dev/nullにエイリアス指定するか、定期的に削除するか。
別のメールアドレスにエイリアス指定で転送するかでしょうね。
# 全部/dev/nullに送ってしまうと、本当に問題があった時のメールも取れなくなる
# と思いますが...


-- 
0----+----1----+----2----+----3----+----4----+----5----+----6----+----7----#
      山田  和雄     MailTo:yamada@xxxxxxxxxxxxx
      Yamada Kazuo   HomePage:http://shadow.sampoji.jp/