- ベストアンサー
sendmail メール送信完了ステータスの受け方
環境は、レンタルサーバで、各機能のバージョンは以下の通りです。 Apache/1.3.41 Ben-SSL/1.59 (Unix) Perl v5.6.1 built for i386-freebsd Version 8.13.1 現在、「sendmail -t」にて複数のメールを送信していますが、サーバの負荷によりsendmail処理が遅延し、そのプロセスが終了する前に次の新たなSendmailコマンドを発行すると rejecting commands from localhost [127.0.0.1] due to pre-greeting traffic で強制終了されてしまいます。 sendmailをcloseしてから、数秒タイムラグを置いてみても、サーバ負荷の遅延がタイムラグより大きくなる事があるようで困っています。 そこで、メールが送信終了(sendmailが送信プロセスを終了)した事を確認してから、次の処理に進みたいと考えていますが、perlプログラム内で終了ステータスを受ける事が出来るのでしょうか? その他、強制終了を防ぐ方法がありましたらアドバイス願います。 ちなみに、レンタルサーバ業者にsendmail送信件数上限を確認した所、150件/分との事でした。 現在、10件/分程度の送信間隔としていますので、上限閾値を超えているような送信はしていないと思います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- mtaka2
- ベストアンサー率73% (867/1179)
回答No.3
- MOMON12345
- ベストアンサー率32% (1125/3490)
回答No.2
お礼
早々のアドバイスありがとうございます。 サーバは共有サーバです。 さっそくプロセス数をチェックしてみたところ、 メール送信直前で5~9辺りのプロセスとなっていました。 このプロセスに閾値を設定して、 超えるとタイムラグ秒数を多くするようなプログラムで試してみたいと思います。 ありがとうございました。 また、sendmailは終始このプロセス数なのですが、 一般のサーバとしてこの数値はどのレベルなのか アドバイス頂ければ幸いです。