2016-04-26 56 views
0

我正嘗試使用EWS訪問進程郵箱。對於一些自動化查詢,我們創建了一個genric進程郵箱。我想通過觀看「進程」收件箱來解析電子郵件。使用EWS訪問通用進程收件箱

我的代碼早期與舊的交換服務器一起工作。但遷移到Office 365後失敗。

我能夠使用我的憑據訪問我的郵箱並在Office 365上解析。

如何訪問此進程郵箱?之前,我創建一個ExchangeService並使用UseDefaultCredentials = true連接到過程電子郵件地址。

我設置了AutoDiscoverURl並使用了DefaultCredentials。但是當我嘗試閱讀電子郵件時,我收到「SMTP地址沒有與之關聯的郵箱」。

編輯: 我試圖用我自己的憑據,而不是默認憑據。

string smtpaddress = "[email protected]"; 
es.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"); 
es.Credentials = new WebCredentials("myemail", "mypassword"); 
es.AutodiscoverUrl(smtpaddress, RedirectionCallback); 
FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "[email protected]"); 
Folder sharedInbox = Folder.Bind(es, SharedMailbox); 

在這一點上,我可以檢查包含收件箱的詳細信息的sharedInbox。我可以看到未讀的電子郵件數量和其他人。

但是,當我訪問

ItemView itemView = new ItemView(100); 
FindItemsResults<Item> findResults1 = es.FindItems(pqInbox.Id, itemView); 

我得到異常「SMTP地址沒有與之關聯的郵箱」

回答

0

免責聲明:我沒有在一段時間與EWS工作。

您不能使用Office 365的默認憑據。您需要提供基本憑證或使用OAuth令牌。

您應該確認該帳戶已遷移到Office 365中。登錄到OWA並查看URL以確保您使用的是Office 365而不是本地服務器。

這已經由Exchange Web Services: UseDefaultCredentials property

+0

回答了這個解決訪問郵箱的第一部分。我能夠訪問但不能枚舉郵件項目。 –

+0

您可以通過[email protected]登錄到OWA嗎?你可以打開跟蹤並顯示ExchangeService.AutodiscoverUrl調用的結果嗎?您不必在Office 365中使用自動發現功能,但它可以提供一些有關此處發生的事情的信息。 –

+0

如果我使用我的憑證,我可以在瀏覽器上看到Process Inbox和我自己的憑證。爲什麼FIndItems失敗是我無法理解的.. –