Недокументированное состояние 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>

Я не смог найти никакой документации по этому коду статуса в официальных документах. Как я могу понять это?

1 ответ

Sync значение кода состояния 4 представляет ошибку протокола клиента. Это задокументировано на этой странице MSDN.

Правильный Sync Команда будет выглядеть примерно так, если предположить, что Inbox имеет идентификатор 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, Основная последовательность протокола описана здесь.

Другие вопросы по тегам