2016-09-18 5 views
0

Я пытаюсь написать код, который будет отправлять электронную почту через мой сервер обмена 2010 и я получаю эту ошибку:C# Отправить по электронной почте через сервер Exchange, 2010

An unhandled exception of type 'System.Security.Authentication.AuthenticationException' occurred in System.dll

Я подтвердил отправку анонимной электронной почты на моем сервере обмена и все мои данные верны (ip, порт, имя пользователя и пароль).

Но все еще не удается выполнить отправку.

Вот код, я использую в C#:

  SmtpClient client = new SmtpClient(); 
     client.Port = 25; 
     client.Host = "myip"; 

     client.EnableSsl = true; 
     client.Timeout = 10000; 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.UseDefaultCredentials = false; 
     client.Credentials = new System.Net.NetworkCredential("username", "password"); 

     MailMessage mm = new MailMessage("myEmail", "SendToEmail", "test","test"); 
     mm.BodyEncoding = UTF8Encoding.UTF8; 
     mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 

     client.Send(mm); 

Спасибо за вашу помощь!

ответ

0

Вы можете отправлять электронные письма с использованием API веб-служб Exchange (EWS). EWS - это набор старомодных веб-сервисов ASMX, размещенных на том же сервере, что и OWA. Microsoft даже опубликовала управляемую оболочку API для EWS.

Вот пример того, как отправить электронную почту с помощью EWS: http://code.msdn.microsoft.com/Send-Email-with-Exchange-50189e57

Обычно EWS можно найти на http://yourexchangeserver/ews/exchange.asmx, но с управляемым API вы можете использовать автоопределение автоматически найти адрес EWS на вашем сервере обмена.

Здесь приведено описание, где объясняются такие вещи, как автообнаружение.

Update относительно Exchange 2003:

Вы можете получить доступ к почтовому хранилище Exchange 2003 с помощью HTTP с помощью WebDAV. WebDAV немного больно использовать, потому что вам может понадобиться использовать проверку подлинности на основе форм (FBA), если это требуется вашей установке OWA (в сравнении EWS может использовать проверку подлинности Windows, даже если OWA на Exchange 2007/2010 использует FBA).

Я никогда не пытался отправлять письма с помощью WebDAV для Exchange (хотя я использовал WebDAV для многих других вещей), но я нашел пример на MSDN, который вы можете попробовать. Он использует проверку подлинности Windows, поэтому он не будет работать, если ваш Exchange 2003 OWA настроен на использование FBA. Если вам нужно использовать FBA, дайте мне знать - у меня может быть какой-то пример кода, который вы можете использовать.

+0

Эй, спасибо за ваш ответ, я сделал все правильно, и теперь я использую API веб-служб Exchange (EWS). и теперь я получаю эту ошибку: необработанное исключение типа «Microsoft.Exchange.WebServices.Data.ServiceRequestException» произошло в Microsoft.Exchange.WebServices.dll, и в нем говорится, что некоторая ошибка с моим TLS/SSL. waitng за вашу помощь спасибо! – Yahav

+0

Используете ли вы имя Exchange? Или IP-адрес, чтобы попасть в обмен? Я считаю, что попробуйте переключить его на другой, который вы не используете прямо сейчас, потому что в основном сертификаты связаны с именами, а не с IP-адресом для сервера, поэтому попробуйте переключиться. Я надеюсь, что это помогает. –

Смежные вопросы