2011-08-11 62 views
1

我在嘗試構建簡單的Exchange ActiveSync客戶端。同步時未記錄的Exchange ActiveSync狀態

我正在使用簡單的Python腳本發送初始同步電子郵件命令,同時連接到Exchange 2010 SP1。

在請求正文我發送編碼爲WBXML(使用pywbxml)以下XML:

<?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

Sync狀態碼值4表示客戶端協議錯誤。它記錄在this MSDN page

甲正確Sync命令看起來更像下文中,假設Inbox具有5的ID(從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。基本協議序列描述爲here