この SMTP エラーは開発者の責任でしょうか?

この SMTP エラーは開発者の責任でしょうか?

ある Web サイトからエラー メッセージが返されてきましたが、これはサーバー側で何か問題が発生しているようです。ただし、このサーバーはボックス上の他のすべてのサイトでは機能します。私 (開発者) が何か間違っている可能性はありますか? サーバー上でこれを追跡するにはどこから始めればよいかわかりません。システム管理者によると、すべて正常に見えるとのことです。

The following recipient(s) cannot be reached:
  Customer Service Account on 6/3/2009 11:00 AM
         There was a SMTP communication problem with the
recipient's email server.  Please
contact your system administrator.
<fgdc.myservername.net #5.5.0 smtp;550 Requested action not taken: mailbox unavailable>

サーバーは 2003、64 ビットで、Exchange 2003 を実行しています。

サイトはAsp.Net C#で、URLルーティングを使用しています

この問題のトラブルシューティングはどこから始めればよいでしょうか?


アップデート

結局、システム管理者は、問題をスパム対策の層まで追跡しました。MIMESweeper は、Web サーバー ファームからのメッセージを内部アドレスで送信しようとしているため、メッセージを破棄している可能性があることが判明しました。外部アドレス (Gmail、Hotmail など) をテストしましたが、問題なく動作しました。

回答していただきありがとうございました。結局のところ、私の観点からすると、最良の答えは「システム管理者に相談する」でした...しかし、同じような質問をお持ちの人のために、質問を更新しようと思いました。

答え1

これは、サーバーが「RCPT TO:」として指定した相手が有効ではないと言っていることを意味します。

まず、Wireshark などを使用して、コードとサーバー間の SMTP 通信をキャプチャし、期待どおりの送信が行われているかどうかを確認することをお勧めします。回線上で何が起こっているかを確認し、コードで想定されている動作と一致しているかどうかを確認するのは、常に良いことです。

正しい受信者を指定している場合は、サーバー管理者に連絡して確認してもらってください。

答え2

確かに、これは開発者の責任かもしれません。たとえば、仕様では RCPT は次のようになるとされています。

RCPT TO:<[email protected]>

ただし、実際には次のように送信するのが一般的です。

RCPT TO: [email protected]

完全な機能を備えた成熟した MTA のほとんどは、厳密には正しくないにもかかわらず、後者を受け入れます。一部のアプリ (メール ファイアウォール、CRM メール キャッチャーなど) は、これに厳格に対応し、エラーを返します。

この場合、それが原因だと言っているのではありませんが、これは、コードがほとんどのサーバーでは機能する可能性があるが、少数のサーバーで動作しない場合は依然として責任があなたにあるという例です。

トラフィックをスニッフィングして実際に何が送信されているかを把握するという Evan の推奨に賛成します。

答え3

いわゆる通常兵器を使用して、問題の電子メール アドレスに電子メールを送信できますか? 送信できる場合、原因はおそらくあなたのコードです。送信できない場合は、相手のサーバー (または、相手のサーバーをスマートホストしようとするファイアウォール) です。

答え4

ご存知ない方のために言っておきますが、これは ServerFault サイトです。システム管理者がコードの問題だと言った場合、それはコードの問題です。エラーは常に開発者の責任です。システム管理者を責めたい場合、もっと同情的な stackoverflow というサイトがあるそうです :)

真面目な話、はい、それはコードです。エラーによると、受信者は無効です。どういうわけか、Webサーバーは「カスタマーサービスアカウント」と呼ばれるアカウントにメールを送信しようとしていますが、すべての電子メールアドレスは次の形式になっています。[メールアドレス]550 エラーが発生したということは、宛先メールサーバーに正しく接続したが、「カスタマー サービス アカウント」というユーザーが存在しないことを示しています。

技術的には 550 はリレーできないことを意味しますが、内部メールボックスに送信しようとしているのではないかと思います。リレーしようとしている場合でも、この受信者は適切にフォーマットされていません。

関連情報