Недокументированное состояние 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
, Основная последовательность протокола описана здесь.