Office365 EWS。更新它们。为什么';你不能换钥匙吗?
在EWSOffice365 EWS。更新它们。为什么';你不能换钥匙吗?,office365,exchange-server,exchangewebservices,Office365,Exchange Server,Exchangewebservices,在EWSItemId中,标记具有ChangeKey属性。以下是Exchange文档对此属性的说明: 在Exchange中处理项目时,另一个要记住的值是ChangeKey属性。除项目ID外,此值还用于跟踪项目的状态。任何时候更改项目时,都会生成一个新的更改密钥 因此,在我的应用程序中,我正在执行UpdateItem操作。这是我发送到服务器的XML: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="
ItemId
中,标记具有ChangeKey
属性。以下是Exchange文档对此属性的说明:
在Exchange中处理项目时,另一个要记住的值是ChangeKey属性。除项目ID外,此值还用于跟踪项目的状态。任何时候更改项目时,都会生成一个新的更改密钥
因此,在我的应用程序中,我正在执行UpdateItem
操作。这是我发送到服务器的XML:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2007_SP1" />
</soap:Header>
<soap:Body>
<m:UpdateItem xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" MessageDisposition="SaveOnly" ConflictResolution="AlwaysOverwrite" SendMeetingInvitationsOrCancellations="SendToNone">
<m:ItemChanges>
<t:ItemChange>
<t:ItemId Id="AAMkADE3MTJkZWNlLTZiYWYtNDY4Yi1hNmM3LWU2MzY2ZDZjYWNhMQBGAAAAAACoXti5FFu8TJNLLS5k9vC8BwAcJDq8WkSCQ77jdOtyazgnAAAAAAEMAAAcJDq8WkSCQ77jdOtyazgnAACOg4SZAAA=" ChangeKey="`CQAAAA==`" />
<t:Updates>
<t:SetItemField>
<t:FieldURI FieldURI="message:IsRead" />
<t:Message>
<t:IsRead>false</t:IsRead>
</t:Message>
</t:SetItemField>
</t:Updates>
</t:ItemChange>
</m:ItemChanges>
</m:UpdateItem>
</soap:Body>
</soap:Envelope>
如您所见,返回的更改密钥仍然是
CQAAAA==
。为什么没有更改?从技术上讲,已读/未读状态不是消息本身的一部分;它是分开存放的。这就是在PF存储中实现每个用户消息状态的方式。文件夹
如果修改任何其他属性,则更改键将更改 然而,当我在创建消息后第一次更改已读/未读状态时,更改密钥确实会更改。是读取/未读取状态的后续更新使更改密钥保持不变。怎么了?我不知道。商店提供商可以自由调整其他属性。Exchange经常对新创建的邮件执行此操作。
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" MajorVersion="15" MinorVersion="0" MajorBuildNumber="1365" MinorBuildNumber="1" Version="V2_23" />
</s:Header>
<s:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:UpdateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:UpdateItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:Message>
<t:ItemId Id="AAMkADE3MTJkZWNlLTZiYWYtNDY4Yi1hNmM3LWU2MzY2ZDZjYWNhMQBGAAAAAACoXti5FFu8TJNLLS5k9vC8BwAcJDq8WkSCQ77jdOtyazgnAAAAAAEMAAAcJDq8WkSCQ77jdOtyazgnAACOg4SZAAA=" ChangeKey="CQAAAA==" />
</t:Message>
</m:Items>
<m:ConflictResults>
<t:Count>0</t:Count>
</m:ConflictResults>
</m:UpdateItemResponseMessage>
</m:ResponseMessages>
</m:UpdateItemResponse>
</s:Body>
</s:Envelope>