在某些环境下无法读取Outlook邮件项自定义属性

时间:2016-10-28 00:11:43

标签: delphi outlook exchange-server outlook-addin extended-properties

我的pascal代码中有一个常量...

const PropNameForUOID = 'http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/ORIONUOID

我通过调用...

来设置此属性
OleVariant(MI).PropertyAccessor.SetProperty(PropNameForUOID, Guid);

我在Add-in Express生成的Outlook Addin中执行此操作。 MI是一个Outlook200.pas MailItem; 这一切都适用于设置属性。我没有错。

以下是我稍后在代码中阅读的内容......

result := OleVariant(MI).PropertyAccessor.GetProperty(PropNameForUOID);

当我在Outlook 2013客户端上运行此命令时,点击MS Exchange Build 14.3.294.4000,一切正常。

但是,我们将它放在客户端系统上,当我们尝试读取属性时,我们会收到错误。设置工作正常,但读错。

在客户端计算机上,我的IT技术人员将Outlook 2013配置为访问他有权访问的另一台Exchange服务器。然后它奏效了。我们认为这与客户端的Exchange服务器有关。

这可能是这种情况吗?

如果是,我们应该寻找什么样的设置?

我的Delphi代码中有什么问题吗?

1 个答案:

答案 0 :(得分:1)

您不应该假设该属性存在并处理GetProperty返回的异常。使用OutlookSpy(单击IMessage按钮)查看您遇到问题的项目,以确保该属性存在。