7

アプリケーションにSystem.Net.Mailを使用して電子メールを送信しようとしていますが、次の例外が発生します。

System.Net.Mail.SmtpException:メールの送信に失敗しました。---> System.Net.WebException:リモートサーバーに接続できません---> System.Net.Sockets.SocketException:ターゲットマシンがアクティブに拒否したため、接続できませんでした198.238.39.170:25

私が使用しているコードは次のとおりです。

string mailserver = "Scanmail.ofm.wa.lcl";
MailMessage msg = new MailMessage("albert@einstein.net", "snark@snarky.com", "Very subjective", "A message body!");
SmtpClient client = new SmtpClient(mailserver);
client.Send(msg);

上記の電子メールアドレスは架空のものですが、実際のコードでは、システムで実際の電子メールアドレスを使用しています。メールサーバーのアドレスは正確です。

ある種のセキュリティクレデンシャルをそこに入れる必要があると思いたくなりますが、どこにあるのかわかりません。@ Andre_Calilのアドバイスによると、これは問題ではなく、開発マシンが接続できないようにメールサーバーが構成されている可能性があります。では、これをどのように克服するのでしょうか?

4

1 に答える 1

11

したがって、私たちが話していたように、サーバーはおそらくすべてのマシンからのリレーを拒否するように構成されています。これは推奨されるセキュリティ設定です。

command開発マシンから、プロンプト( )を開き、と入力しますtelnet SMTP_SERVER_IP_ADDRESS 25。このコマンドは、デフォルトのSMTPポートであるポート25で基本的なソケット接続を確立しようとします。成功した場合でも、サーバーに認証が必要かどうかを確認する必要があります。

ただし、失敗した場合は、システム管理者の助けが得られるまでコードを保留にする必要があります。

SMTPサーバーはとに構成されている可能性があるため、もう1つ試してみるのは、アプリサーバーから同じテストを繰り返すことです。allow app_serverdeny everybody_else

よろしく

于 2012-07-23T22:55:06.470 に答える