我们的应用程序有两个部分,并且希望两个部分都能够访问 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 表单中,我们可以按照描述的方式将文本框映射到字段,从而将文本框的值存储到字段中 here 。因此,保存并重新打开项目后,自定义文本框将填充字段中的值。但当尝试通过 EWS 访问这些值时,它们根本不存在,反之亦然。
那么对于多种 API/语言来说,这些扩展属性是否有多个“槽位”?
或者,扩大问题范围,您将使用什么方法/API 将键值类型数据放入 Outlook 项目中,而这些数据应该可以通过 Java 进行访问?
最佳答案
您可以使用 AppointmentItem.PropertyAccessor.GetProperty
访问任何 MAPI 属性。
您可以在 OutlookSpy 中查看属性及其 DASL 名称(调用 GetProperty
时需要使用该名称)。 (我是它的作者):选择约会,单击 IMessage 按钮,选择有问题的属性,查看 DASL 编辑框。
关于java - 访问 Outlook 表单和 Exchange Web 服务中的自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228725/