0

删除消息后,我的应用程序将发送一个同步请求,其中包含命令元素中的删除命令。该应用程序还设置 DeletesAsMoves 选项,以便邮件不会被永久删除,而是移动到 Deleted Items 文件夹。这一切都很好。但是,我现在面临的挑战是将邮件移出“已删除邮件”文件夹。这是失败的,因为一旦在 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 是什么。

4

0 回答 0