You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Exchange SOAP更新联系人PersonalNotes失败,求正确SOAP代码

解决EWS SOAP更新联系人PersonalNotes字段的问题

你已经找对了核心方向,EWS里联系人的PersonalNotes字段对应的就是SOAP请求中的Notes字段,你的思路没问题,大概率是请求细节上的小疏漏。下面是经过验证的正确SOAP请求格式,以及关键注意点:

正确的SOAP请求代码

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2016" />
    <t:TimeZoneContext>
      <t:TimeZoneDefinition Id="Eastern Standard Time" />
    </t:TimeZoneContext>
  </soap:Header>
  <soap:Body>
    <m:UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AlwaysOverwrite">
      <m:ItemChanges>
        <t:ItemChange>
          <t:ItemId Id="AAMkAD...QAAAz9hI5AAA=" ChangeKey="EQAAAB...QAAAz9rdN" />
          <t:Updates>
            <t:SetItemField>
              <t:FieldURI FieldURI="contacts:Notes" />
              <t:Contact>
                <t:Notes>TEST UPDATED NOTE</t:Notes>
              </t:Contact>
            </t:SetItemField>
          </t:Updates>
        </t:ItemChange>
      </m:ItemChanges>
    </m:UpdateItem>
  </soap:Body>
</soap:Envelope>

关键注意事项

  • 字段URI正确性:你使用的contacts:Notes是完全正确的,它直接对应联系人对象的PersonalNotes属性,不需要额外使用扩展属性来访问。
  • ItemId与ChangeKey有效性:务必确保填入的Id和ChangeKey是从之前的GetItem或FindItem请求中获取的真实有效数值,ChangeKey用于冲突检测,值不正确会直接导致更新失败。
  • 服务器版本匹配:确认RequestServerVersion中的Version值与你的Exchange服务器实际版本一致(Exchange2016是合法有效值)。
  • 权限验证:发起请求的账户需要拥有修改目标联系人的权限,比如如果是邮箱内的联系人,需要具备该邮箱的读写权限。

如果仍然遇到错误,建议查看返回的SOAP错误响应,里面会包含具体的错误代码和描述,能帮你更快定位问题。

内容的提问来源于stack exchange,提问作者Sabri Mbarek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:17:49