删除消息后,我的应用程序将发送一个同步请求,其中包含命令元素中的删除命令。该应用程序还设置 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 是什么。