c#通过Exchange Server 2010发送电子邮件

时间:2016-09-18 15:20:27

标签: c# visual-studio email exchange-server

我正在尝试编写一个代码,通过我的Exchange Server 2010发送电子邮件 我得到这个错误:

  

未处理的类型异常   发生'System.Security.Authentication.AuthenticationException'   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);

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

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

通常可以在http://yourexchangeserver/ews/exchange.asmx找到EWS,但使用托管API,您可以使用自动发现自动在Exchange服务器上查找EWS的地址。

以下是对自动发现等内容的概述。

有关Exchange 2003的更新:

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

我从来没有尝试使用WebDAV for Exchange发送邮件(尽管我已经将WebDAV用于其他一些事情)但我在MSDN上找到了一个你可能想尝试的例子。它使用Windows身份验证,因此如果您的Exchange 2003 OWA设置为使用FBA,它将无法运行。如果您需要使用FBA,请告诉我 - 我可能会在您可以使用的地方提供一些示例代码。