我正在尝试构建一个简单的Exchange ActiveSync客户端。
我正在使用一个简单的Python脚本,该脚本在连接到Exchange 2010 SP1时发送初始同步电子邮件命令。
在请求正文中,我发送以下编码为WBXML的XML(使用pywbxml):
<?xml version="1.0"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<Sync>
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>0</SyncKey>
<CollectionId>5</CollectionId>
</Collection>
</Collections>
</Sync>
服务器以200 OK
回答,但返回Status code: 4
<?xml version="1.0"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<Sync>
<Status>4</Status>
</Sync>
我在官方文档中找不到有关此状态代码的任何文档。我怎么能搞清楚这一点?
答案 0 :(得分:0)
Sync
状态代码值4
表示客户端协议错误。它记录在this MSDN page。
正确的Sync
命令看起来更像是以下内容,假设Inbox
的ID为5(从WBXML转换为可读的XML):
<?xml version='1.0' ?>
<Sync>
<Collections>
<Collection>
<SyncKey>0</SyncKey>
<CollectionId>5</CollectionId>
<Options>
<FilterType>5</FilterType>
<BodyPreference>
<Type>1</Type>
<TruncationSize>32768</TruncationSize>
</BodyPreference>
</Options>
</Collection>
</Collections>
</Sync>
然而,EAS协议首先要求您Provision
和FolderSync
。你不能直接跳到Sync
。基本协议序列描述为here。