2014-09-29 51 views
0

我正在开发一个使用Exchange API发送电子邮件的C#项目。如何测试与Exchange Server的连接?

到目前为止,我完全能够发送电子邮件,我只想知道如何测试我与Exchange Server的连接。

我需要一个名为TestConnection的方法,它在被调用时测试连接到交换服务器。这可能吗?

我在Exchange API上找不到任何可以实现这一点的任何东西..下面你会发现我用来连接和发送电子邮件的部分代码。

ExchangeService service = new ExchangeService(); 
if (String.IsNullOrEmpty(DomainName)) 
    service.Credentials = new WebCredentials(FromEmail,Password); 
service.Credentials = new WebCredentials(FromEmail, Password, DomainName); 
service.AutodiscoverUrl(FromEmail, RedirectionUrlValidationCallback); 

//Email Setup 
EmailMessage emailMessage = new EmailMessage(service); 

//EmailMessageSetting: 

emailMessage.Save(); 
emailMessage.SendAndSaveCopy(); 

在此先感谢!

回答

0

经过一番挖掘,我意识到如果连接参数出现问题,service.AutodiscoverUrl会抛出异常。

如果您输入了错误的域名,电子邮件或密码,AutodiscoverUrl将会引发错误。

我在TestConnection方法中做了什么,调用了AutodiscoverUrl。如果一切正常,此方法将设置Exchange Web服务URL的ExchangeService.Url属性作为参数,如果电子邮件,密码或域名出现问题则引发异常。

最后,如果Service.url不为空或为空,则连接测试成功。

Ps: 虽然AutodiscoverUrl只使用电子邮件作为参数,但它也验证Service.Credentials中的密码。

+0

可能迟到了派对,但在我的应用程序中,我通过简单地绑定到收件箱文件夹来测试连接(URL和凭证)。每个邮箱都有一个,因此足以验证所有数据是否合格。并且它不会在Exchange上创建“虚拟”对象,因此测试不会更改邮箱状态。只是我的2美分。 – grapkulec 2014-11-20 16:01:17