Outlook .find .restrict方法中使用的所有可能的表达式键是什么?

时间:2017-03-10 14:43:36

标签: c# outlook

我无法在任何地方看到完整的列表,它使生活创建工具的前景特别痛苦。

我在WPF中创建了一系列与Microsoft.Office.Interop.Outlook集成的工具

我可以使用.find和.restrict来应用过滤器,就像下面的示例一样:

        restrictedItems = inboxFolder.Items
            .Restrict("[ReceivedTime] > '" + dateFilter1.ToString("MM/dd/yyyy HH:mm")
            + "' And [ReceivedTime] < '" + dateFilter2.ToString("MM/dd/yyyy HH:mm") + "' ");

然而,我只是不知道我可以用来过滤的所有可能字段。微软做了很糟糕的工作来记录它。

以下是一些例子: [ReceivedTime] [MessageClass的] [LastModificationTime]

但我想拥有一切

任何方向?

1 个答案:

答案 0 :(得分:2)

它可以是任何MailItemContactItemAppointmentItem等属性(有一些排除项,您无法使用任何PT_BINARY属性)。如果查询采用SQL格式(前缀为@SQL=)并且您以DASL格式(引用)指定属性名称,则还可以指定任何MAPI属性。例如。要过滤PR_MESSAGE_DELIVERY_TIME属性,请使用类似

的过滤器
@SQL="http://schemas.microsoft.com/mapi/proptag/0x0E060040" > '03/05/2017'

要找出DASL属性名称,可以使用OutlookSpy - 选择消息,单击OutlookSpy功能区上的IMessage按钮,在GetProps选项卡上选择相应的属性,查看DASL编辑框。 OutlookSpy还可以显示所有实时Outlook对象模型对象(单击项目按钮等)