0

Web アプリケーションを運用 IIS 6.0 サーバーに展開しましたが、コードが電子メール サーバーのドメインにないアドレスに電子メールを送信しようとした場合を除いて、すべてが機能しています。さまざまな症状を見てきましたが、これは説明するのが最も簡単なようです。

パラメータまたは引数に構文エラーがあります。サーバーの応答: 5.7.1 このシステムはメールを中継するように構成されていません

このエラー メッセージを取得する Web アプリは、System.Net.Mail を使用します。System.Web.Mail を使用する古い Web アプリと一緒に存在します。この同じマシンに 1 つの SMTP サーバーがあり、リレーに関して新しい構成が必要と思われます。

SMTP サーバーのプロパティを確認すると、「リレー制限」が構成されていませんでした。古い運用 Web アプリは、説明どおりに構成された SMTP サーバーを使用して、エラーなしで電子メールを送信します。

要約すると、System.Net.Mail を使用するには、電子メールを中継するために System.Web.Mail とは異なるものが必要ですか?

リレーの問題がある新しいバージョンの web.config には次のものが含まれます。

<system.net><mailSettings><smtp><network host="mail.cbmiweb.com" port="25"/></smtp>

すべてのテストで上記の値を使用しました (最初は XP IIS 5.1 を使用するローカルホストで、次に LAN のステージング IIS 6.0 サーバーで)、「リレー」の問題はまったくありませんでした。

System.Web.Mail を使用する古いバージョンの web.config には、SMTP に関連するものは何も含まれていません。

上記の smtp 設定に追加されたユーザー名パスワードが突然必要になった場合、開発中に「資格情報」を必要としなかったのはなぜですか?

私は SMTP についてよく知りませんし、メール サーバーの管理者に何を尋ねたらよいかもわかりません。どうしようか迷ってます…ありがとうございます。

4

1 に答える 1

1

古いアプリがメッセージを受信者サーバーに直接送信し、ローカル メール サーバーを完全にバイパスしているように思えます。これは、アプリで使用するメール サーバーが設定されていなかったため、デフォルトでメール自体を送信しようとするために発生したものです。

これは通常、受信者のメール サーバーの構成によってはアプリケーションの遅延を引き起こす可能性があるため、お勧めできません (ここでは数秒のことを言っています)。さらに、グレー リストなどを処理するように構成されていない場合は、送信されたと思われるが実際には届かなかった多数の電子メールが発生する可能性があります。

マシンからの中継を許可するようにローカル メール サーバーを適切に構成するよう、メール サーバー管理者に依頼する必要があります。

または(これがより安全な方法です)

ローカル メール サーバーにユーザーを設定し、電子メールを送信するときにアプリでそれらのログイン資格情報を使用する必要があります。

systemnetmail.comサイトが役立つ場合があります具体的にはsmtp configurationのページです。

于 2010-07-13T22:22:27.373 に答える