2

我正在用 C# 开发一个 Outlook 2010 自定义插件。这是我第一次使用 C#(我通常是 java 人)。

我想访问的消息中有一个命名的(自定义)MAPI 属性,但在这样做时遇到了麻烦。我的理解是,在 Outlook 2007 中引入了 PropertyAccessor 对象,它允许轻松访问命名的 MAPI 属性。我按照以下文档中的说明进行操作:

http://msdn.microsoft.com/en-us/library/ff868915.aspx

我可以使用 Outlook Spy 在邮件上看到我想要访问的命名 MAPI 属性。从 Outlook Spy 我可以获得有关该属性的以下信息:

GUID:    {00020329-0000-0000-C000-000000000046}
Tag num: 0x80BE0102
ID:      PR.AFU.MESSAGE.RETRIEVE.INFO
Type:    PT_BINARY

所以我尝试了以下代码(对象邮件是 MailItem 的有效实例):

mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102");

这会产生以下异常:

The property "http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102" is unknown or cannot be found

所以我想知道如何真正获得这个属性?我是否错误地形成了命名空间引用?或者我是否需要使用本示例中概述的方法:

http://www.outlookcode.com/codedetail.aspx?id=1112

我的理解是,这仅对 2007 年之前的 Outlook 版本是必需的。任何帮助深表感谢!

4

3 回答 3

3

OutlookSpy 将在 IMessage 窗口的 DASL 编辑框中为您提供 DASL 属性名称。

于 2011-07-29T16:46:01.410 回答
0

如果你尝试会发生什么

mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x80BE0102");

?

于 2011-07-28T16:37:19.780 回答
0

Microsoft 的 MFCMapi也是定位 DASL 和查看所有 MAPI 属性的好工具。

于 2012-02-27T17:23:46.153 回答