System.Net.MailがSystem.Web.Mail.のSMTPリレー要件です
-
15-09-2020 - |
質問
私のWebアプリケーションをプロダクションIIS 6.0サーバーに展開し、私のコードが私たちの電子メールサーバーのドメインに含まれていないアドレスに電子メールを送信しようとしている場合を除き、すべてが機能しています。私はさまざまな症状を見ましたが、これは説明するのが最も簡単です:
パラメータまたは引数の構文エラー。サーバーの応答は次のとおりです.5.7.1このシステムはメールを中継するように設定されていません
私のWebアプリこのエラーの取得MSGはSystem.Net.Mailを使用します。それは古いWebアプリと一緒に存在し、それはSystem.Web.Mailを使用するものを置き換えることになっています。この同じマシンには、リレーに関していくつかの新しい設定が必要なように思われるSMTPサーバーが1つあります。
SMTPサーバの確認プロパティでは、「中継制限」に設定されていないことが示されています。古いプロダクションWebアプリは、説明されているように設定されたSMTPサーバーでエラーなしで電子メールを送信します。
それでも、system.net.mailの使用はSystem.Web ailよりも電子メールを中継するために異なるものを必要としますか?
中継の問題を抱えている新しいバージョンのweb.configに含まれています:
<system.net><mailSettings><smtp><network host="mail.cbmiweb.com" port="25"/></smtp>
.
私はすべての私のテストのために上記の値を使用しました(最初に私のlocalhost上でXP IIS 5.1;その後、私たちのLANのステージングIIS 6.0サーバーで)、「中継」の問題を抱えていませんでした。
System.Web.Mailを使用した古いバージョンのweb.configには、SMTPに関連しないものが含まれていません。
突然 username とパスワードが必要な場合は、上記のSMTP設定に追加されました。開発中に「資格情報」を必要としないのですか?
私はSMTPについてあまり知らず、本当にメールサーバー管理者に何を尋ねるべきかさえ知らない。私は何をすべきかについて非常に混乱しています...ありがとう。
解決
古いアプリが受信者サーバに直接メッセージを送信しているように、ローカルメールサーバーを完全にバイパスしているように、私には聞こえます。アプリが設定されたメールサーバーが使用されていないため、これは起こったでしょう。そのため、デフォルトはメール自体を送信しようとしています。
これは通常、受信者のメールサーバーの設定に応じてアプリケーションの遅延を引き起こす可能性があるため、アプリケーションの遅延を引き起こす可能性があります(ここで秒を話しています)。さらに、灰色のリストなどのようなものに対処するように構成されていない場合は、が送信されたことを考えるが、本当に到着しないでください。
マシンからの中継を許可するように、メールサーバ管理者にローカルメールサーバを適切に構成するように依頼する必要があります。
または(そしてこれはより安全な方法である)
ローカルメールサーバーにユーザーをセットアップし、Eメールを送信しようとしたときにアプリがそれらのログイン認証情報を使用させる必要があります。
systemnetmail.com サイトは役に立ちます。具体的には、 SMTP設定
。