如何在“电子邮件列表”窗格中访问邮件项目

本文关键字:访问 项目 邮件列表 | 更新日期: 2023-09-27 18:35:03

我正在开发一个 Outlook 2013 插件,该插件需要访问当前显示在电子邮件列表窗格中的电子邮件。

我已经搜索了很多,但我只能找到在当前所选文件夹中列出电子邮件的方法:

Outlook.MAPIFolder curFolder = this.Application.ActiveExplorer().CurrentFolder;
Outlook.Items mailItems = curFolder.Items;
MailItem item = mailItems.GetFirst();
如果用户未应用任何搜索筛选器,

这将正常工作;但如果通过即时搜索栏应用筛选器,则此代码将生成与未应用筛选器相同的邮件项目列表。

我想到了两种可能解决此问题的方法,但在网上找不到任何适用于两者的资源。1(最好直接读取当前在电子邮件列表窗格中呈现的邮件项目列表。2(或者,读取即时搜索文本框中的值,并使用Items.Find((命令将其应用于当前选定的文件夹。

任何指导或解释将不胜感激;提前感谢。

如何在“电子邮件列表”窗格中访问邮件项目

Outlook

对象模型不提供对 Outlook 中显示的筛选器行或项目的任何直接访问。

但是资源管理器类提供了 CurrentView 属性,该属性返回表示当前视图的对象。类提供应用于当前视图的 Filter 属性。

Sub ResetView()  
   Dim v as Outlook.View  
   ' Save a reference to the current view object  
   Set v = Application.ActiveExplorer.CurrentView  
   ' v.Filter
End Sub 

因此,您可以将筛选器应用于 Items 集合并获取相同的项目集。