1

我们有一个包含两个部分的应用程序,并且希望两者都能够访问 Outlook 项目的相同字段。通过字段,我的意思是可以存储在项目上的任何类型的键值类型的数据,因为显然它们似乎有多种。所以应用程序的两个部分是:

  • 使用 MS 提供的官方 EWS 库的 Java 应用程序
  • 使用 VBScript 的 Outlook 表单

我们能够从 Java 应用程序访问 Outlook 项目,甚至可以存储和检索所谓的扩展属性。但只有那些通过相同 API 存储的。据我所知,这方面的代码在 C# 中也非常相似。

ExtendedPropertyCollection epc = appointment.getExtendedProperties();
for (ExtendedProperty ep : epc) {
    // these do not print anything, epc.getCount() returns 0
    System.out.println(" extendedpropC: " + ep.getClass());
    System.out.println(" extendedpropV: " + ep.getValue());
}

在 Outlook 表单中,我们可以通过将文本框映射到此处描述的方式将文本框的值存储到字段中。因此,在保存并重新打开项目后,自定义文本框将填充字段中的值。但是,当尝试通过 EWS 访问这些值时,它们根本不存在,反之亦然。

那么,对于多种 API/语言,这些扩展属性是否有多个“插槽”?

或者,为了扩大问题范围,您将使用哪些方法/API 将键值类型数据用于 Outlook 项目,而这些数据应该可以通过 Java 以某种方式访问​​?

4

1 回答 1

1

您可以使用 AppointmentItem.PropertyAccessor.GetProperty 访问任何 MAPI 属性。

您可以在OutlookSpy中查看属性及其 DASL 名称(调用 GetProperty 时需要使用):选择约会,单击 IMessage 按钮,选择有问题的属性,查看 DASL 编辑框。

于 2013-10-07T17:00:16.860 回答