【问题标题】:How to set the contact title using Exchange Web Services Managed API如何使用 Exchange Web 服务托管 API 设置联系人标题
【发布时间】:2011-06-19 07:12:44
【问题描述】:

我正在尝试使用 EWS API 创建新联系人。我可以设置我需要的所有值,除了联系人标题属性。我试过代码:

oContact = new Contact(oService);
oContact.GivenName = "John";
oContact.Surname = "Doe";
oContact.Displayname = oContact.Surname;

// set the title property as extended property
// reference: http://msdn.microsoft.com/en-us/library/gg274394.aspx
ExtendedPropertyDefinition oTitleProp = new ExtendedPropertyDefinition(
  new Guid("{00062004-0000-0000-C000-000000000046}"),
  0x3A45,
  MapiPropertyType.String);
oContact.SetExtendedProperty(oTitleProp, "Mr.");

oContact.Save();

我没有收到错误,但是当我检查 Outlook 2010 中的标题字段时,它是空的。我正在使用 Exchange 2010。

任何想法我做错了什么?

亲切的问候

沃尔克马尔

【问题讨论】:

    标签: exchange-server exchangewebservices ews-managed-api


    【解决方案1】:

    简答

    创建扩展属性定义时,不要使用指定propertySetId 的构造函数,而不是上面的代码。相反,像这样构造它:

    ExtendedPropertyDefinition oTitleProp = new ExtendedPropertyDefinition(
        0x3A45,
        MapiPropertyType.String);
    

    更长的答案

    你从微软那里得到的参考很有趣。通过阅读 Inside Microsoft Exchange Server 2007 Web Services 中关于扩展属性的章节,我一直认为对于不在自定义范围内的扩展属性(低于 0x8000 的那些),在引用它们时会省略 propertySetId,所以有趣的是那个页面,微软似乎暗示你会使用它。

    值得一提的是,Microsoft Exchange Server 2007 Web 服务内部有一个免费提供的附录(附录 C),其中还记录了http://www.microsoft.com/mspress/companion/9780735623927/ 处的扩展属性,这可能比 Microsoft 页面更清楚地说明何时使用 propertySetId 以及何时不使用到。

    http://msdn.microsoft.com/en-us/library/cc433490(EXCHG.80).aspx 上还有更准确的属性列表及其对应的属性集

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多