如何在同步/删除请求后获取新消息ID

时间:2011-10-10 18:16:19

标签: activesync

删除邮件时,我的应用程序将在Commands元素中发送带有删除命令的同步请求。该应用程序还设置DeletesAsMoves选项,以便永久删除邮件,而不是移动到“已删除邮件”文件夹。一切都很好。但是,我的挑战是现在将消息从“已删除邮件”文件夹中移回。这是失败的,因为一旦在Sync命令中删除了消息,其消息ID就会改变。

在MoveItems请求中,新消息ID返回到响应中。在同步/删除命令后,我是否有类似的方式跟踪更改的消息ID?

以下是请求:

<?xml version="1.0"?>
<Sync>
  <Collections>
    <Collection>
      <Class>Email</Class>
      <SyncKey>{F8654B17-4BF2-439F-9875-22EDDE1138FF}154</SyncKey>
      <CollectionId>03cd385d379ece4988b9c88834382ea7-68cc1f</CollectionId>
      <DeletesAsMoves/>
      <GetChanges/>
      <WindowSize>50</WindowSize>
      <Options>
        <FilterType>2</FilterType>
        <Truncation>7</Truncation>
      </Options>
      <Commands>
        <Delete>
          <ServerId>3:225</ServerId>
        </Delete>
      </Commands>
    </Collection>
  </Collections>
</Sync>

回复:

<?xml version="1.0"?>
<Sync>
  <Collections>
    <Collection>
      <Class>Email</Class>
      <SyncKey>{F8654B17-4BF2-439F-9875-22EDDE1138FF}155</SyncKey>
      <CollectionId>03cd385d379ece4988b9c88834382ea7-68cc1f</CollectionId>
      <Status>1</Status>
    </Collection>
  </Collections>
</Sync>

响应表明删除命令成功,但邮件现在位于另一个带有全新ServerId的文件夹中。我希望能够知道新的ServerId是什么。

0 个答案:

没有答案