1

我正在尝试构建一个简单的 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>

服务器回答 a200 OK但返回 aStatus code: 4

<?xml version="1.0"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<Sync>
  <Status>4</Status>
</Sync>

我在官方文档中找不到有关此状态码的任何文档。我怎么能弄清楚这个?

4

1 回答 1

1

Sync状态码值4表示客户端协议错误。它记录在此 MSDN 页面上

假设ID 为 5(从 WBXML 转换为可读的 XML) ,正确的Sync命令应该如下所示:Inbox

<?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. 这里描述了基本的协议序列。

于 2011-08-15T15:42:59.787 回答