同步时未记录的Exchange ActiveSync状态



我正在尝试构建一个简单的Exchange ActiveSync客户端。

我正在使用一个简单的Python脚本发送初始同步电子邮件命令,同时连接到Exchange 2010 SP1。

在请求体中,我发送以下XML编码为WBXML(使用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>

我在官方文档中找不到任何关于这个状态码的文档。我怎么才能算出来呢?

Sync状态码4表示客户端协议错误。在这个MSDN页面上有文档。

正确的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协议要求先设置ProvisionFolderSync。你不能直接跳到Sync。这里描述了基本协议序列。

相关内容

  • 没有找到相关文章

最新更新