我在Outlook文件夹上调用sort,尝试按接收时间排序。但是,当文件夹包含非电子邮件项目( a Task
)时,我收到错误消息,指出ReceivedTime
属性不存在。
oFolderItems := oFolder.Items;
oFolderItems.sort('ReceivedTime',2); //2 = Descending
排序的原因是,对于某些用户,我正在访问的文件夹中可能有数千封电子邮件,他们只想查看最新的x号码。
有关如何避免非电子邮件项目的任何提示?
答案 0 :(得分:2)
您可以使用DASL Filter来限制给定View
或Items
集合中显示的项目。要过滤为仅发送邮件,您可以使用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