2013-10-14 37 views
1

我有一小段代碼連接到Exchange以獲取特定帳戶的約會。此帳戶沒有郵箱。無法通過郵箱獲取Exchange帳戶的約會

Dim service As New ExchangeService(ExchangeVersion.Exchange2010_SP2) 
service.Credentials = New NetworkCredential("userID", "password") 
service.AutodiscoverUrl("[email protected]") 

Dim calView As New CalendarView(DateTime.Today, DateTime.Today.AddYears(2)) 
calView.Traversal = ItemTraversal.Shallow 
calView.PropertySet = New PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.Subject, AppointmentSchema.Location) 

Dim mtgs As FindItemsResults(Of Item) = service.FindItems(WellKnownFolderName.Calendar, calView) 

該代碼在最後一行提出以下例外。

當作爲沒有郵箱的帳戶發出請求時,必須爲任何獨立文件夾ID指定郵箱主SMTP地址。

我已經使用service.UseDefaultCredentials = True代替了Credentials行來執行代碼,並且它執行但當然會返回我的約會。有沒有解決這個問題?我認爲我的選擇是說服Exchange管理員爲感興趣的賬戶授予我的賬戶模擬權限。

+0

考慮發佈您的答案,作爲答案。它會幫助其他用戶。 – Idris

+0

謝謝,@顏色。 – Bashzilla

回答

1

我發現我的錯誤。此帳戶對某些會議室的時間表擁有權限,但沒有自己的郵箱(或日曆)。因此FindItems行不應該使用「WellKnowFolderName.Calendar」,這將是該帳戶的日曆。相反,它應該使用新的FolderID對象來指定正在搜索的會議室的日曆文件夾。

Dim _cal As New FolderId(WellKnownFolderName.Calendar, New Microsoft.Exchange.WebServices.Data.Mailbox(room)) 
相關問題