gpt4 book ai didi

c# - 如何从 Exchange Server 2007 SP1 获取最新的 SyncState

转载 作者:行者123 更新时间:2023-11-30 22:08:30 25 4
gpt4 key购买 nike

我正在使用 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 封邮件,则需要调用 20 次 EWS 才能获得最终的 SyncState。
如何通过一次调用 EWS 获得最终或最新的 SyncState?

最佳答案

您无法在一次调用中获得最新的同步状态,请参阅 EWS. How to get latest SyncState without initial synchronization? .请注意,从 Exchange 2010 SP2 开始,EWS 会按从最新到最旧的顺序返回项目,因此用户将首先获得最新的项目——他们不必等待所有 20 个调用。

关于c# - 如何从 Exchange Server 2007 SP1 获取最新的 SyncState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22253026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com