Ошибка SSL/TLS при подключении к Exchange из C#

Я пытаюсь проверить отправку письма на электронный адрес моей собственной компании. У нас есть Outlook, размещенный на сервере 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;
        }
    }
  }
}

Когда я запускаю это, я получаю сообщение об ошибке: "Сбой AutodiscoverConfiguration: веб-исключение (базовое соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS).

Я не знаю, как на моем рабочем месте настроена безопасность Exchange Server, потому что она обрабатывается другой командой.

Как мне решить эту проблему?

1 ответ

Я действительно предпочел бы, чтобы вы работали с вашим локальным администратором Exchange здесь, как будто что-то не так с AutoDiscovery, только они могут помочь решить эту проблему.

В любом случае, вот несколько возможных вариантов, основанных на меньшем количестве информации, которую мы имеем в настоящее время:

1.) Это может быть проблема доверия SSL. Убедитесь, что полномочия корневого ЦС, которые используются для службы обмена, к которой вы подключаетесь, являются доверенными для вашего приложения / вашей локальной ОС. В зависимости от вашей локальной конфигурации вам необходимо импортировать некоторые доверенные корни SSL или доверять самоподписанному сертификату ssl.

2.) Чтобы проверить проблему с автообнаружением, мы можем попробовать выполнить удаленную проверку с помощью теста удаленного подключения Microsoft (автообнаружение Outlook). Но в зависимости от конфигурации сервера Exchange может быть внутренняя и внешняя конфигурация автообнаружения, и проверка внешнего не означает, что внутреннее устройство работает нормально. Итак, как написано выше: вам нужно работать с вашим администратором Exchange.

Другие вопросы по тегам