簡體   English   中英

如何從Exchange Server 2007 SP1獲取最新的SyncState

[英]How to get latest SyncState from Exchange Server 2007 SP1

我正在使用EWS api進行電子郵件操作。
最初用戶設置帳戶時,我只需要收集其帳戶的最新同步狀態。 此后,我的CRON作業會定期檢查最新更改。
這是代碼

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;

問題在於用戶最初設置其帳戶時收集SyncState。
假設用戶的收件箱中有600封電子郵件。 當我要求使用上述代碼進行同步時,我得到的同步狀態對前512封電子郵件有效。 我將不得不再打一個電話,以獲取下一個有效且最終的同步狀態。 這將增加用戶設置其帳戶的等待時間。 如果用戶在收件箱中有10000封郵件,則需要對EWS進行20次調用以獲取最終的SyncState。
如何通過單次調用EWS獲得最終或最新的SyncState?

您無法在單個呼叫中獲得最新的同步狀態,請參見EWS。 如何在沒有初始同步的情況下獲取最新的SyncState? 請注意,從Exchange 2010 SP2開始,EWS從最新到最舊返回項目,因此用戶將首先獲得他們的最新項目-他們不必等待所有20個呼叫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM