0

我在尝试检索默认收件箱文件夹时遇到问题,因为我没有实例可以从中检索它。

最终,我试图检索一年或更长时间的邮件列表,以便我可以在表单中显示这些邮件并让用户知道这些邮件即将过期,因此要么移动它们,要么保存它们,否则将被删除。有一项新的企业电子邮件保留政策,即在一年后删除电子邮件并且不让用户知道。

然而,在我这样做之前,我需要一个 MailItems 列表。当 Outlook 启动时,Outlook 调用以下代码:

/// <summary>
/// Overridden method to allow Outlook to look for and load extensions.
/// </summary>
/// <returns>A <see cref="MailExpiryAlert"/> class containing the extension logic</returns>
protected override Office.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    if (Application.Explorers.Count > 0)
    {
        string breakPoint = "this break point will never be reached on initial startup";
    }
    return new MailExpiryAlert();
}

但是,我收到以下错误: NullReferenceExceptoin:对象引用未设置为对象的实例。这是因为资源管理器窗口尚未加载,因此为空。但是,我应该如何在 Outlook 本身加载之前加载我的扩展程序(它取决于资源管理器和其中的文件夹)?我知道我在这里遗漏了一些非常基本的东西,但任何帮助将不胜感激。

4

1 回答 1

1

你需要Application.Session.GetDefaultFolder(olFolderInbox),不管有没有活跃的资源管理器。

于 2013-02-19T02:41:23.907 回答