我正在开发Java Exchange ActiveSync客户端,我想同步收件箱文件夹以检索电子邮件标头。我按照MS ActiveSync文档,能够验证,folderSync和服务器同步。但是,只有Sync命令中的某些属性才有效。
为了测试好 ActiveSync消息的外观,我使用Android Emulator和CharlesProxy HTTP代理来捕获从Android电子邮件应用程序发送的ActiveSync消息。我能够成功捕获并解码WBXML消息。我看到我尝试使用的ActiveSync XML消息未能通过“内置”电子邮件应用程序正常工作。 E.g。
此XML Sync命令在从电子邮件应用程序发送时有效,但不能从我的Java客户端发送:
<?xml version="1.0" encoding="utf-8" ?>
<Sync xmlns="AirSync">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>sync key here</SyncKey>
<CollectionId>collectionID HERE</CollectionId>
<DeletesAsMoves/>
<GetChanges/>
<WindowSize>5</WindowSize>
<Options>
<FilterType>2</FilterType>
<MIMESupport>2</MIMESupport>
<MIMETruncation>7</MIMETruncation>
</Options>
</Collection>
</Collections>
</Sync>
有谁知道为什么?某些应用程序是否具有特殊权限,这意味着它们可以使用完整的ActiveSync协议? 我想强调一下,我可以运行一个成功的Sync命令,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<Sync xmlns="AirSync">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>sync key here</SyncKey>
<CollectionId>collection Id here</CollectionId>
<GetChanges/>
</Collection>
</Collections>
</Sync>
我无法像Android电子邮件应用那样添加额外的属性。
感谢任何帮助!