やまだ@三宝寺です。 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/