从C#连接到Exchange时出现SSL / TLS错误

时间:2017-04-27 05:28:53

标签: c# outlook exchange-server

我正在尝试测试向自己公司的电子邮件ID发送电子邮件。我们在Exchange服务器上托管了Outlook。我使用了以下代码(由于隐私原因,用随机代码取代我的电子邮件ID):

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;
        }
    }
  }
}

当我运行此操作时,出现错误,其中显示" AutodiscoverConfiguration失败:Web异常(底层连接已关闭:无法为SSL / TLS安全通道建立信任关系)。

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

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

我真的更喜欢你在这里与本地的Exchange管理员合作,好像AutoDiscovery有任何问题,只有他们可以帮助解决这个问题。

无论如何,这里有一些可能的选项,基于我们目前拥有的较少的信息:

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

2)。 要检查自动发现问题,我们可以尝试通过Microsoft Remote Connectivity Test (Outlook Autodiscover)进行远程检查。但是根据Exchange服务器配置,可能存在内部和外部自动发现配置,并且验证外部并不意味着内部工作正常。如上所述:您需要与Exchange管理员合作。