2014-09-29 166 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