【问题标题】:Outlook 2010 add-in: how to go through all mail messages?Outlook 2010 插件:如何浏览所有邮件?
【发布时间】:2014-10-27 14:59:27
【问题描述】:

我正在用 C# 编写一个简单的 Outlook 2010 加载项,它将遍历所有电子邮件,并在每封邮件的主题和正文中搜索特定文本。加载项脚手架(就像确实集成到 Outlook 的加载项,带有一堆按钮的自定义功能区 - 类似的东西)已就位并正在工作,但出乎意料的是,我似乎无法弄清楚如何做中心部分 - 浏览邮件。尝试寻找工作示例或教程没有产生任何结果,有很多“hello world”的东西,但没有别的......

非常感谢有关如何在加载项中浏览邮件消息的提示。

【问题讨论】:

  • 这个问题之前已经回答过无数次了。以this link 为例。

标签: c# email vsto outlook-addin


【解决方案1】:

您可以获取收件箱文件夹并从那里获取邮件:

Outlook.MAPIFolder inbox = 
    Globals.ThisAddIn.Application.Session.DefaultStore
    .GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

foreach (object item in inbox.Items)
{
    Outlook.MailItem mail = item as Outlook.MailItem;

    if (mail != null)
    {
        // use the mail item
    }
}

【讨论】:

  • 谢谢!周围看到过这种代码,但是“System.Windows.Forms.Application不包含Session的定义”...
  • 那是错误的命名空间。你应该有using Outlook = Microsoft.Office.Interop.Outlook;
  • 这不是Application。从您的 cs 文件顶部删除 WinForms 命名空间导入,或者如果您需要它,为它创建一个别名。
  • 好的,但是现在“名称'应用程序'在当前上下文中不存在”......我显然做错了什么,但是什么?这是我在相关文件的“使用”部分中的内容:使用系统;使用 System.Collections.Generic;使用 System.IO;使用 System.Linq;使用 System.Reflection;使用 System.Runtime.InteropServices;使用 System.Text;使用 Office = Microsoft.Office.Core;使用 Outlook = Microsoft.Office.Interop.Outlook;
  • 然后在它前面加上Globals.ThisAddIn.。更新了答案。
猜你喜欢
  • 2020-06-07
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2014-06-27
相关资源
最近更新 更多