我正在尝试构建一个ActiveSync客户端应用程序。 我有一个测试Hotmail帐户,其中包含过去6个月的邮件,其中大部分都是未读的。 Hotmail使用ActiveSync v2.5。 我尝试了同步命令,但我只能收到新邮件,旧的(> 3个月)邮件不会出现!
我错过了什么或这是如何运作的?
[编辑:包括请求和响应Xml以使其更清晰]
初始请求:
<?xml version="1.0" ?>
<Sync xmlns="AirSync:">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>0</SyncKey>
<CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
<WindowSize>512</WindowSize>
</Collection>
</Collections>
</Sync>
响应:
<?xml version="1.0" encoding="UTF-8" ?>
<Sync xmlns="AirSync">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>000000000{813672f0-cc63-4308-9a33-4e8c1d0f351e}0</SyncKey>
<CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
<Status>1</Status>
</Collection>
</Collections>
</Sync>
请求:
<?xml version="1.0" ?>
<Sync xmlns="AirSync:">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>000000000{813672f0-cc63-4308-9a33-4e8c1d0f351e}0</SyncKey>
<CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
<GetChanges />
<WindowSize>512</WindowSize>
</Collection>
</Collections>
</Sync>
响应:
<?xml version="1.0" encoding="UTF-8" ?>
<Sync xmlns="AirSync">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>000000000{13704907-A726-4149-8186-E3EEE98D9918}1</SyncKey>
<CollectionId>00000000-0000-0000-0000-000000000001</CollectionId>
<Status>1</Status>
<Commands>
<Add>[Contains email details]</Add>
</Commands>
</Collection>
</Collections>
</Sync>
此外,相同的代码适用于GMail帐户(使用ActiveSync v12.0)
答案 0 :(得分:1)
显然,Hotmail服务器对不同设备的响应不同。 我将发送到服务器的User-Agent值修改为Apple-iPhone / 705.18,它开始工作了!
答案 1 :(得分:0)