加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[Exchange]使用EWS托管API2.0同步邮箱

发布时间:2020-12-15 04:38:06 所属栏目:百科 来源:网络整理
导读:p style="margin-left: 30px;"你可以通过Exchange Web Serivice(EWS)托管API去检索从一个给定的时间点,文件夹中有变化的列表中的项。 p style="margin-left: 30px;"客户端可以使用SyncFoldersItems方法,同步服务端的项目,你只需按照下面的做就可以了:

<p style="margin-left: 30px;">你可以通过Exchange Web Serivice(EWS)托管API去检索从一个给定的时间点,文件夹中有变化的列表中的项。


<p style="margin-left: 30px;">客户端可以使用SyncFoldersItems方法,同步服务端的项目,你只需按照下面的做就可以了:

  • 执行初始同步操作(以检索指定文件家中的所有项目的列表)。
  • 周期性地执行随后的同步操作以检索自先前同步以来发生的项变更列表。

ChangeCollection icc = service.SyncFolderItems( FolderId(WellKnownFolderName.Inbox),PropertySet.FirstClassProperties,,,SyncFolderItemsScope.NormalItems,);

sSyncState = icc.SyncState;

(icc.Count == (ItemChange ic + + + </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;TODO: Create item on the client.</span>

<span style="color: #000000;"> }
}

执行随后的同步操作

ChangeCollection icc = service.SyncFolderItems( FolderId(WellKnownFolderName.Inbox),sSyncState);

(icc.Count == (ItemChange ic (ic.ChangeType == (ic.ChangeType == (ic.ChangeType == (ic.ChangeType == Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;ChangeType: </span><span style="color: #800000;"&gt;"</span> +<span style="color: #000000;"&gt; ic.ChangeType.ToString()); Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;ItemId: </span><span style="color: #800000;"&gt;"</span> +<span style="color: #000000;"&gt; ic.ItemId.UniqueId); </span><span style="color: #0000ff;"&gt;if</span> (ic.Item != <span style="color: #0000ff;"&gt;null</span><span style="color: #000000;"&gt;) { Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;Subject: </span><span style="color: #800000;"&gt;"</span> +<span style="color: #000000;"&gt; ic.Item.Subject); } Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;===========</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;); }

}

例子

isEndOfChanges = <span style="color: #008000;">//<span style="color: #008000;"> Call SyncFolderItems repeatedly until no more changes are available.
<span style="color: #008000;">//
<span style="color: #008000;"> sSyncState represents the sync state value that was returned in the prior synchronization response.

<span style="color: #0000ff;">do<span style="color: #000000;">
{
<span style="color: #008000;">//<span style="color: #008000;"> Get a list of changes (up to a maximum of 5) that have occurred on normal items in the Inbox folder since the prior synchronization.
ChangeCollection icc = service.SyncFolderItems(<span style="color: #0000ff;">new FolderId(WellKnownFolderName.Inbox),<span style="color: #800080;">5<span style="color: #000000;">,sSyncState);

</span><span style="color: #0000ff;"&gt;if</span> (icc.Count == <span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;)
{
    Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;There are no item changes to synchronize.</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;);
}
</span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt;
{
    </span><span style="color: #0000ff;"&gt;foreach</span> (ItemChange ic <span style="color: #0000ff;"&gt;in</span><span style="color: #000000;"&gt; icc)
    {
        </span><span style="color: #0000ff;"&gt;if</span> (ic.ChangeType ==<span style="color: #000000;"&gt; ChangeType.Create)
        {
            </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;TODO: Create item on the client.</span>

<span style="color: #000000;"> }
<span style="color: #0000ff;">else <span style="color: #0000ff;">if (ic.ChangeType ==<span style="color: #000000;"> ChangeType.Update)
{
<span style="color: #008000;">//<span style="color: #008000;">TODO: Update item on the client.
<span style="color: #000000;"> }
<span style="color: #0000ff;">else <span style="color: #0000ff;">if (ic.ChangeType ==<span style="color: #000000;"> ChangeType.Delete)
{
<span style="color: #008000;">//<span style="color: #008000;">TODO: Delete item on the client.
<span style="color: #000000;"> }
<span style="color: #0000ff;">else <span style="color: #0000ff;">if (ic.ChangeType ==<span style="color: #000000;"> ChangeType.ReadFlagChange)
{
<span style="color: #008000;">//<span style="color: #008000;">TODO: Update the item's read flag on the client.
<span style="color: #000000;"> }

        Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;ChangeType: </span><span style="color: #800000;"&gt;"</span> +<span style="color: #000000;"&gt; ic.ChangeType.ToString());
        Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;ItemId: </span><span style="color: #800000;"&gt;"</span> +<span style="color: #000000;"&gt; ic.ItemId.UniqueId);
        </span><span style="color: #0000ff;"&gt;if</span> (ic.Item != <span style="color: #0000ff;"&gt;null</span><span style="color: #000000;"&gt;)
        {
            Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;Subject: </span><span style="color: #800000;"&gt;"</span> +<span style="color: #000000;"&gt; ic.Item.Subject);
        }
        Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;===========</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;);
    }
}

</span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; Save the sync state for use in future SyncFolderHierarchy calls.</span>
sSyncState =<span style="color: #000000;"&gt; icc.SyncState;

</span><span style="color: #0000ff;"&gt;if</span> (!<span style="color: #000000;"&gt;icc.MoreChangesAvailable)
{
    isEndOfChanges </span>= <span style="color: #0000ff;"&gt;true</span><span style="color: #000000;"&gt;;
}

} <span style="color: #0000ff;">while (!isEndOfChanges);

总结

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读