C# 从C连接到Exchange时发生SSL/TLS错误#

C# 从C连接到Exchange时发生SSL/TLS错误#,c#,outlook,exchange-server,C#,Outlook,Exchange Server,我正在尝试向我自己的公司电子邮件id发送电子邮件。我们在Exchange server上托管了Outlook。我使用了以下代码(出于隐私原因,将我的电子邮件id替换为随机id): 运行此操作时,我收到一个错误,上面写着“AutoDiscoveryConfiguration失败:Web异常(基础连接已关闭:无法为SSL/TLS安全通道建立信任关系”) 我不知道Exchange Server的安全性在我的工作场所是如何设置的,因为它是由不同的团队处理的 如何解决此问题?我更希望您与本地Exchang

我正在尝试向我自己的公司电子邮件id发送电子邮件。我们在Exchange server上托管了Outlook。我使用了以下代码(出于隐私原因,将我的电子邮件id替换为随机id):

运行此操作时,我收到一个错误,上面写着“AutoDiscoveryConfiguration失败:Web异常(基础连接已关闭:无法为SSL/TLS安全通道建立信任关系”)

我不知道Exchange Server的安全性在我的工作场所是如何设置的,因为它是由不同的团队处理的


如何解决此问题?

我更希望您与本地Exchange管理员一起工作,就好像自动发现有什么问题一样,只有他们能够帮助解决问题

无论如何,基于我们目前拥有的信息较少,以下是一些可能的选择:

1.) 这可能是SSL信任问题。请确保用于连接到的exchange服务的根CA机构在您的应用程序/本地操作系统中受信任。根据您的本地配置,您需要在此处导入一些受信任的SSL根或信任自签名SSL证书

(二)
要检查自动发现问题,我们可能会尝试通过远程检查。但是,根据Exchange server配置的不同,可能会有内部和外部自动发现配置,验证外部自动发现配置并不意味着内部工作正常。如上所述:您需要与Exchange管理员一起工作。

感谢您的回复!我尝试了您提到的Microsoft远程连接测试,但仍然失败。因此,正如您所建议的,我想我需要Exchange管理员的帮助。这是最好的选择。如果需要,您可以这样做,但我不确定这是否适用于您自己创建的应用程序。
using System;
using Microsoft.Exchange.WebServices.Data;

namespace TestEmail
{
    class Program
    {
        static void Main(string[] args)
        {
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
            service.UseDefaultCredentials = true;
            //service.Credentials = new WebCredentials("user1@contoso.com", "password");

            service.TraceEnabled = true;
            service.TraceFlags = TraceFlags.All;

            service.AutodiscoverUrl("xxx@yyy.com", RedirectionUrlValidationCallback);

            EmailMessage email = new EmailMessage(service);

            email.ToRecipients.Add("xxx@yyy.com");

            email.Subject = "Test mail";
            email.Body = new MessageBody("Sending the test email");

            email.Send();
        }

        private static bool RedirectionUrlValidationCallback(string redirectionUrl)
        {
            // The default for the validation callback is to reject the URL.
            bool result = false;

            Uri redirectionUri = new Uri(redirectionUrl);

            // Validate the contents of the redirection URL. In this simple validation
            // callback, the redirection URL is considered valid if it is using HTTPS
            // to encrypt the authentication credentials. 
            if (redirectionUri.Scheme == "https")
            {
                result = true;
            }
            return result;
        }
    }
  }
}