0

下面的 SOAP 调用将更新整个类别列表(以前的条目将消失),但我想添加一个或多个。

<soapenv:Envelope [snip]>
   <soapenv:Header>
      <typ:RequestServerVersion Version="Exchange2007_SP1"/>
      <typ:MailboxCulture>en-US</typ:MailboxCulture>
   </soapenv:Header>
   <soapenv:Body>
      <mes:UpdateItem ConflictResolution="AutoResolve" SendMeetingInvitationsOrCancellations="SendToNone">
         <mes:ItemChanges>
            <typ:ItemChange>
               <typ:ItemId Id="AQMk[snip]AAAA==" ChangeKey="DwA[snip]JPV57"/>
               <typ:Updates>
                  <typ:SetItemField>
                     <typ:FieldURI FieldURI="item:Categories"/>
                     <typ:CalendarItem>
                        <typ:Categories>
                          <typ:String>TIMETELL</typ:String>
                        </typ:Categories>
                     </typ:CalendarItem>
                  </typ:SetItemField>
               </typ:Updates>
            </typ:ItemChange>
         </mes:ItemChanges>
      </mes:UpdateItem>
   </soapenv:Body>
</soapenv:Envelope>

我尝试了 AppendToItemField 而不是 SetItemField,但类别不是“可附加”属性(ErrorInvalidPropertyAppend - 只有收件人、抄送、密件抄送、必需、可选、资源、正文和回复)。

有没有办法添加类别字符串?

Glen Scales 在这篇文章中的回答表明我必须刷新整个类别列表,但他不确定

4

1 回答 1

0

我想要的确实是不可能的,必须更新整个类别列表

另请注意,“使用类别标记联系人项目不会修改主类别列表,这是 Outlook 用来显示下拉列表的内容。如果您希望您的类别出现在下拉列表中,则必须将其添加到 MCL 。” 并且在Exchange 2007更高版本
中更新 MCL 必须以不同的方式完成,“因为主类别列表存储在邮箱中的隐藏项目中 - EWS 不允许您访问隐藏项目,因此没有真正的解决方法。但是您可以使用 Mapi、Exoledb 或 WebDAV 等任何其他 Exchange API 执行此操作。”

于 2013-01-28T13:10:42.707 回答