![](/img/trans.png)
[英]Get Global Address List (GAL) from Exchange Server 2010 SP1 using ExchangeService
[英]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.