删除邮件时,我的应用程序将在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是什么。