1

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

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

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

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

4

1 回答 1

2

您可以使用DASL 过滤器来限制给定ViewItems集合中显示的项目。对于仅过滤邮件消息,您可以使用Message Class属性(MAPI 名称PR_MESSAGE_CLASS)并将其限制为 just 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
于 2012-10-18T16:18:37.230 回答