在Outlook文件夹中排序项目时出现问题

时间:2012-10-18 09:29:34

标签: delphi automation outlook

我在Outlook文件夹上调用sort,尝试按接收时间排序。但是,当文件夹包含非电子邮件项目( a Task )时,我收到错误消息,指出ReceivedTime属性不存在。

oFolderItems := oFolder.Items;
oFolderItems.sort('ReceivedTime',2);  //2 = Descending

排序的原因是,对于某些用户,我正在访问的文件夹中可能有数千封电子邮件,他们只想查看最新的x号码。

有关如何避免非电子邮件项目的任何提示?

1 个答案:

答案 0 :(得分:2)

您可以使用DASL Filter来限制给定ViewItems集合中显示的项目。要过滤为仅发送邮件,您可以使用Message Class属性( MAPI名称PR_MESSAGE_CLASS )并将其限制为IPM.Note_Items.Restrict方法将帮助您应用DASL过滤器。

string messageClassFilter = "@SQL=" + "\"" + "http://schemas.microsoft.com/mapi/proptag/0x001a001e" + "\"" + " LIKE 'IPM.Note%'";
oFolderItems := oFolder.Items.Restrict(messageClassFilter); // filter by Message Class
oFolderItems.sort('ReceivedTime',2);  //2 = Descending