您好,我想知道是否可以从我的 WinForms 应用程序向 Outlook 2010 发送搜索查询。也就是说,不是像我一直在搜索和发现的那样搜索 .PST 文件,而是尝试在 Outlook 中显示结果列表,就像我自己在搜索框中键入一样。
如果可能,任何示例代码都会有所帮助。此外,是否可以直接在所有邮件项目中执行搜索,而通常当您进行搜索时,它会梳理当前文件夹。谢谢。
最佳答案
如果您想访问 Outlook 数据(例如邮件),您必须向 Microsoft Outlook X.X 对象库添加 COM 引用。
对于 Outlook,您可以使用 COM 互操作。打开“添加引用”对话框并选择“.NET”选项卡,然后添加对 Microsoft.Office.Interop.Outlook 程序集的引用。
之后不要忘记将命名空间“Microsoft.Office.Interop.Outlook”添加到您的 using 子句中。
现在您可以创建 Outlook 应用程序对象的实例:
Microsoft.Office.Interop.Outlook.Application outlook;
outlook = new Microsoft.Office.Interop.Outlook.Application();
让我们对您的收件箱执行查询:
MAPIFolder folder =
outlook.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);
IEnumerable<MailItem> mail =
folder.Items.OfType<MailItem>().Where(m => m.Subject == "Test").Select(m => m);
您指定要搜索的文件夹作为 GetDefaultFolder(...) 方法的参数。您可以指定收件箱以外的其他文件夹。
- olFolderSentMail
- ol文件夹发件箱
- olFolderJunk
- ...
在 MSDN 上查看每个可能的值:
Stefan Cruysbergs 创建了一个 OutlookProvider component它充当 Outlook 应用程序对象的包装器。您可以使用 LINQ 查询此提供程序并检索联系人、邮件等数据。只需 download他的代码并检查出来。这应该足以让您入门。
关于c# - 在 Outlook 中执行搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160610/