我正在开发一个使用Exchange API发送电子邮件的C#项目。
到目前为止,我完全能够发送电子邮件,我只想知道如何测试我与Exchange Server的连接。
我需要一个名为TestConnection的方法,在调用时测试与Exchange服务器的连接。这可能吗?
我无法在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 :(得分:0)
经过一番挖掘后,我意识到如果连接参数出现问题,service.AutodiscoverUrl会抛出异常。
如果您输入了错误的域名,电子邮件或密码,AutodiscoverUrl将抛出错误。
我在TestConnection方法中所做的是调用AutodiscoverUrl。如果一切正常,此方法将使用Exchange Web服务URL设置ExchangeService.Url属性作为参数的电子邮件,如果电子邮件,密码或域名出现问题则抛出异常。
最后,如果Service.url不为null或为空,则连接测试成功。
PS: 虽然AutodiscoverUrl仅使用电子邮件作为参数,但它也验证了Service.Credentials中的密码。