使用Exchange Web Services创建联系人时姓名字段缺失问题排查
Exchange Web Services (EWS) 创建联系人时FirstName和LastName未生效的问题分析
你提交的SOAP请求成功创建了联系人,但FirstName和LastName字段未被正确保存,问题出在**FullName字段的优先级冲突**上。
问题原因
在Exchange Web Services的联系人创建逻辑中:
- 当请求同时包含
FullName与FirstName/LastName时,Exchange服务器会优先依据FullName的值来生成联系人的姓名信息,而非单独保留FirstName和LastName字段。 - 由于你设置的
FullName值为test9,是一个无明确名姓拆分的字符串,服务器无法从中解析出对应的FirstName和LastName,最终导致这两个字段为空。
解决方案
有两种可行的调整方式:
方案1:移除FullName字段,仅保留FirstName和LastName
让服务器自动根据FirstName和LastName生成FullName(默认格式为FirstName + 空格 + LastName),修改后的SOAP请求如下:
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <soap:Header> <t:RequestServerVersion Version="Exchange2013"/> </soap:Header> <soap:Body> <m:CreateItem> <m:Items> <t:Contact> <t:DisplayName>test9</t:DisplayName> <t:FirstName>firstname</t:FirstName> <t:LastName>lastname</t:LastName> <t:Categories></t:Categories> <t:EmailAddresses></t:EmailAddresses> <t:PhysicalAddresses></t:PhysicalAddresses> <t:PhoneNumbers></t:PhoneNumbers> <t:ImAddresses></t:ImAddresses> </t:Contact> </m:Items> </m:CreateItem> </soap:Body> </soap:Envelope>
方案2:保留FullName但确保其包含名姓结构
如果需要自定义FullName的显示格式,需确保其值包含明确的名和姓,同时调整字段顺序将FirstName/LastName放在FullName之前(部分Exchange版本会优先处理前置字段),示例如下:
<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <soap:Header> <t:RequestServerVersion Version="Exchange2013"/> </soap:Header> <soap:Body> <m:CreateItem> <m:Items> <t:Contact> <t:DisplayName>test9</t:DisplayName> <t:FirstName>firstname</t:FirstName> <t:LastName>lastname</t:LastName> <t:FullName>firstname lastname</t:FullName> <t:Categories></t:Categories> <t:EmailAddresses></t:EmailAddresses> <t:PhysicalAddresses></t:PhysicalAddresses> <t:PhoneNumbers></t:PhoneNumbers> <t:ImAddresses></t:ImAddresses> </t:Contact> </m:Items> </m:CreateItem> </soap:Body> </soap:Envelope>
内容的提问来源于stack exchange,提问作者CardBook CardBook
相关产品推荐
相关产品推荐

