2016-09-18 150 views
0

我想写将通过我的Exchange Server 2010的 发送电子邮件代码和我得到这个错误:C#发送电子邮件通过Exchange服务器2010

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

我证实了我的Exchange服务器上发送匿名电子邮件,我所有的信息都是正确的(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

您可以使用Exchange Web服务API(EWS)发送电子邮件。 EWS是一套老式的ASMX Web服务,与OWA位于同一台服务器上。微软甚至为EWS发布了一个托管API包装器。

下面是有关如何使用EWS发送邮件的例子:http://code.msdn.microsoft.com/Send-Email-with-Exchange-50189e57

通常EWS可以在http://yourexchangeserver/ews/exchange.asmx中查到,但是与管理API,你可以使用自动搜索,自动找到你的Exchange服务器上的EWS的地址。

这里是对自动发现等事情进行解释的概述。对于Exchange 2003中

更新:

您可以使用WebDAV通过HTTP访问Exchange 2003邮件存储。 WebDAV使用起来有点痛苦,因为如果OWA安装需要它(即使Exchange 2007/2010上的OWA使用FBA,EWS也可以使用Windows身份验证),您可能必须使用基于窗体的身份验证(FBA)。

我从来没有尝试使用Exchange的WebDAV发送邮件(虽然我已经使用WebDAV的许多其他东西),但我发现了一个MSDN上的示例,您可能想尝试。它使用Windows身份验证,因此如果您的Exchange 2003 OWA设置为使用FBA,它将不起作用。如果您需要使用FBA,请告诉我 - 我可能会在某处使用一些示例代码。

+0

嘿,感谢您的回复我做的权利,我现在使用Exchange Web服务API(EWS)。现在我得到这个错误:在Microsoft.Exchange.WebServices.dll中发生未经处理的类型为“Microsoft.Exchange.WebServices.Data.ServiceRequestException”的异常,并且它表示与我的TLS/SSL有关。等待你的帮助谢谢你! – Yahav

+0

您使用Exchange名称吗?或者IP地址打到交换机?我相信尝试将它切换到另一个您目前没有使用的版本,因为大多数证书都与名称相关,而不是服务器的IP地址,因此请尝试切换。我希望它有帮助。 –