我正在开发一个 Java Exchange ActiveSync 客户端,我想同步收件箱文件夹以检索电子邮件标题。我按照 MS ActiveSync 文档进行了身份验证、文件夹同步并与服务器同步。但是,只有 Sync 命令中的某些属性有效。
为了测试好的ActiveSync 消息是什么样子,我使用了 Android Emulator 和 CharlesProxy HTTP 代理来捕获从 Android 电子邮件应用程序发送的 ActiveSync 消息。我能够成功捕获和解码 WBXML 消息。我看到我曾尝试使用但未成功的 ActiveSync XML 消息在“内置”电子邮件应用程序中运行良好。例如
此 XML 同步命令在从电子邮件应用程序发送时有效,但从我的 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 协议?我想强调一下,我可以像这样运行成功的同步命令:
<?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 电子邮件应用那样添加额外的属性。
任何帮助表示赞赏!