我正在使用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。非常感谢任何帮助!
答案 0 :(得分:3)
OutlookSpy将在IMessage窗口的DASL编辑框中为您提供DASL属性名称。
答案 1 :(得分:0)
如果您尝试
会发生什么mail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x80BE0102");
答案 2 :(得分:0)
Microsoft's MFCMapi也是查找DASL并查看所有MAPI属性的绝佳工具。