Ошибка 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.