1

我正在使用EWS api進行電子郵件操作。
最初用戶設置他的賬戶時,我只需要收集他賬戶的最新同步狀態。我的CRON工作會定期檢查從那時起的最新變化。
這裏是收集SyncState代碼如何從Exchange Server 2007 SP1獲取最新的SyncState

var service   = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
service.Url   = new Uri("https://" + data.ServerAddress + "/ews/Exchange.asmx"); 
service.Credentials = new NetworkCredential(data.EMail, data.Password); 
ServicePointManager.ServerCertificateValidationCallback = (xyzxyz, certificate, chain, sslPolicyErrors) => true; 
ChangeCollection<ItemChange> icc = service.SyncFolderItems(new FolderId(WellKnownFolderName.Inbox), 
                  PropertySet.FirstClassProperties, 
                  null, 
                  512, 
                  SyncFolderItemsScope.NormalItems, 
                  null); 
return icc.SyncState; 

問題在於,當用戶最初設定了他的賬號。
假設用戶在收件箱中有600封電子郵件。當我用上面的代碼申請syncstate時,我得到了對前512個郵件有效的syncstate。我將不得不再打一次電話才能獲得有效且最終的下一個同步狀態。這將增加用戶設置其賬戶的等待時間。如果用戶在收件箱中有10000封郵件,則需要向EWS發出20個呼叫才能獲得最終的SyncState。
如何通過一次調用EWS獲取最終或最新的SyncState?

回答

相關問題