メールを送信するための非常に基本的なクラスを作成しました。私はsmtpサーバーとそれが正常に動作することをテストしましたが、私はこの例外を与えて私の会社のExchangeサーバーを使用しようとするとき:smtpclientは交換サーバーでは機能しませんがsmtpサーバーで動作します
SMTPサーバーは、セキュリティで保護された接続が必要ですか、クライアントは認証されませんでした。サーバーの応答は:5.7.1クライアントは
を認証されなかった私のコードは以下の通りです:
MailMessage mailMessage = new MailMessage("[email protected]", "[email protected]", "Test Subject", "Void body");
SmtpClient smtpClient = new SmtpClient(smtpServerAddress, smtpServerPort);
NetworkCredential credentials = new NetworkCredential(AccountName,Password);
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = credentials;
smtpClient.EnableSsl = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; // without this I get: The remote certificate is invalid according to the validation procedure.
smtpClient.Send(mailMessage);
私は、SMTPサーバーとは異なるExchangeサーバーを処理する必要があります。
おかげ
ほとんどの場合、Exchangeサーバーでは、使用するためにいくつかの構成が必要です。このようなエラーが発生する可能性があるいくつかのことがあります。 (SMTPパススルーを有効にしない、どのサーバー/ユーザーがパススルーを使用できるかなどの設定ルール)。これはおそらくServerFault.comの方が適しています。エラーを検出すると、Exchangeサーバーの構成を変更することで解決できます。 http://smtp25.blogspot.com/2009/04/530-571-client-was-not-authenticated.html – David
smtpServerPortの値は何ですか? –
25(デフォルトポート) – Ali