企業環境では、当社のメールサーバーは25/tcpおよび587/tcpポートのみを提供します。
何百もの正当な電子メールを送信するためにPerlスクリプト(HTML :: Mailを使用)を使用すると、「メールサーバーに接続できません」というメッセージが表示されることがあります。
sendmailサーバーの過度の負荷が原因で接続が拒否されたり、初期要求に応答しなくなったりする可能性があります。
現在、メールサーバーを所有するチームは非協力的であり、サーバーが接続を拒否しているという証拠を求めています。
Q:問題がサーバー側にあると仮定すると、エラーが発生したときにクライアントからどの情報を収集できますか?これが真であれば、問題がサーバー側にあることをどのように証明できますか?
[[ここでこの質問が有効かどうかはわかりません。問題自体が不明な場合は、トラブルシューティングに役立つことを求めることはできません。この問題をデバッグするのに役立つ簡単なヒントとヒントを求めてください。 d 解決策についてのコメントに関する質問も喜んで受け入れます。]]
答え1
解決策は、sendmailチームが "/etc/mail/sendmail.mc"ファイルを調べることです。
dnl #
dnl # The following limits the number of processes sendmail can fork to accept
dnl # incoming messages or process its message queues to 20.) sendmail refuses
dnl # to accept connections once it has reached its quota of child processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl #
dnl # Limits the number of new connections per second. This caps the overhead
dnl # incurred due to forking new sendmail processes. May be useful against
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address
dnl # limit would be useful but is not available as an option at this writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl
(Treat "dnl" as a comment leadin string.)
電子メールを一括送信する場合は、電子メールを制限することをお勧めします。
答え2
エラーメッセージと問題が発生した正確な時刻を記録してください。これはsendmail管理者がログファイルの問題を正確に見つけるのに役立ちます。
一括メール送信の場合は、次の作業を行う必要があります。
a) 複数の電子メールを送信するために SMTP 接続を再利用します (例: 50)
b) 1 秒あたりに送信されるメッセージの数を制限します (例: 20-50)。
私が提案できる他の方法はsendmailに固有のものであり、sendmail管理者の協力が必要です。