ConvertId 操作
查找有关 ConvertId EWS 操作的信息。
ConvertId Exchange Web Services (EWS) 操作在Exchange Online接受的格式之间转换项目和文件夹标识符,Exchange Online作为Office 365的一部分,以及从 Exchange Server 2013 开始的 Exchange 本地版本。
使用 ConvertId 操作
可以使用 ConvertId 操作转换以下标识符:
Exchange 2007 初始发布版本中 EWS 的标识符格式。 这由
EwsLegacyId
IdFormat 枚举中的枚举值表示。Exchange 2007 SP1 或 Exchange 2010 中 EWS 的标识符格式。 这由
EwsId
IdFormat 中的枚举值表示。MAPI 标识符,如 PR_ENTRYID 属性中所示。 这由
EntryId
IdFormat 枚举中的枚举值表示。可用性日历事件标识符。 这是 PR_ENTRYID 属性的十六进制编码表示形式。 这由
HexEntryId
IdFormat 中的枚举值表示。Exchange 存储标识符。 这由
StoreId
IdFormat 中的枚举值表示。 ConvertId 操作不会将公用文件夹标识符从 EWS 标识符转换为存储标识符。Outlook Web App标识符。 这由
OwaId
IdFormat 中的枚举值表示不支持将从此标识符创建的 URL 传递到Outlook Web App。 Outlook Web App标识符适用于 Exchange 2007 和 Exchange 2010。 从 Exchange Server 2013 开始的 exchange Exchange Online 和版本的Outlook Web App使用 EWS 标识符。
在 Exchange Online 和 Exchange 2013 中将公用文件夹标识符从 EWS 标识符转换为存储标识符时,ConvertId 操作无法按预期工作。 可以手动更新作为解决方法返回的标识符。 若要手动更新标识符,请:
在应用程序代码中,确定目标项/文件夹是否位于公用文件夹中。
解码 Base64 编码的标识符字符串。
验证类型字节 (第 21 个字节) 的值是否为 7。 值为 7 表示标识符的格式不正确。
跳过前四个字节。 它们必须设置为零。
使用以下 GUID 更新接下来的 16 个字节:1A447390AA6611CD9BC800AA002FC45A
使用值 9 更新下一个字节 (类型字节) 。
将标识符更改为 Base64 编码的字符串。
注意
ConvertId 操作验证给定 SMTP 地址的格式是否有效。 该操作无法确定 SMTP 地址是否表示有效的邮箱。
ConvertId 操作可以使用下表中列出的 SOAP 标头。
表 1. ConvertId 操作 SOAP 标头
Header | 元素 | 说明 |
---|---|---|
模拟 |
ExchangeImpersonation |
标识客户端应用程序正在模拟的用户。 这适用于请求。 |
RequestVersion |
RequestServerVersion |
标识操作请求的架构版本:此版本适用于请求。 |
ServerVersion |
ServerVersionInfo |
标识响应请求的服务器版本。 这适用于响应。 |
ConvertId 操作请求示例
以下 ConvertId 请求示例演示如何从 EWS 标识符转换为Outlook Web App标识符。
SOAP 标头中的 RequestServerVersion 元素必须设置为 Exchange2007_SP1 或更高版本才能使此操作正常工作。
注意
项目标识符已缩短,以保持可读性。
<?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="Exchange2010"/>
</soap:Header>
<soap:Body>
<ConvertId xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
DestinationFormat="OwaId">
<SourceIds>
<t:AlternateId Format="EwsId" Id="AAMkAGZhN2IxYTA0LWNiNzItN="
Mailbox="user1@example.com"/>
</SourceIds>
</ConvertId>
</soap:Body>
</soap:Envelope>
ConvertId 操作响应示例
以下示例显示了对 ConvertId 请求的成功响应。 此响应示例包含Outlook Web App标识符。
注意
已缩短Outlook Web App标识符以保持可读性。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="1"
MajorBuildNumber="191" MinorBuildNumber="0"
Version="Exchange2010"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<ConvertIdResponse xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ResponseMessages>
<ConvertIdResponseMessage ResponseClass="Success">
<ResponseCode>NoError</ResponseCode>
<AlternateId xsi:type="t:AlternateIdType" Format="OwaId" Id="RgAAAAAS2%2"
Mailbox="user@example.com" />
</ConvertIdResponseMessage>
</ResponseMessages>
</ConvertIdResponse>
</soap:Body>
</soap:Envelope>
ConvertId 操作错误响应示例
以下示例显示了对包含错误类型标识符格式的请求的响应。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServerVersionInfo MajorVersion="8" MinorVersion="1"
MajorBuildNumber="206" MinorBuildNumber="0"
Version="Exchange2010"
xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<ConvertIdResponse xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ResponseMessages>
<ConvertIdResponseMessage ResponseClass="Error">
<MessageText>Id is malformed.</MessageText>
<ResponseCode>ErrorInvalidIdMalformed</ResponseCode>
<DescriptiveLinkKey>0</DescriptiveLinkKey>
</ConvertIdResponseMessage>
</ResponseMessages>
</ConvertIdResponse>
</soap:Body>
</soap:Envelope>
版本差异
EWS 标识符格式在 Exchange 2007 的初始版本和 Exchange 2007 Service Pack 1 (SP1) 之间更改。 从 Exchange 2010 开始,Exchange Online作为Office 365、Exchange Online和本地版本的 Exchange 的一部分使用 Exchange 2007 SP1 使用的相同标识符格式。
ConvertId 操作将公用文件夹标识符从 EWS 标识符转换为 Exchange 2007 和 Exchange 2010 中的存储标识符。