1

我正在使用 2 个插件(一个用于 Outlook 2007,一个用于 Outlook 2010)。这些插件需要做的一件事是向主类别列表添加一个类别(如果该类别尚不存在)。

我就是这样做的:

NameSpace oNS = Application.GetNamespace("MAPI");
if (oNS.Categories[Resources.MyCategoryName] == null)
  {
    oNS.Categories.Add(Resources.MyCategoryName, OlCategoryColor.olCategoryColorOrange, OlCategoryShortcutKey.olCategoryShortcutKeyNone);
  }

问题是当我在 Outlook 中有 2 个或更多电子邮件帐户时,新类别仅添加到第一个帐户的主类别列表中。其他科目的主类别清单保持不变。“第一个帐户”是指在 Outlook 中创建的第一个帐户。

我在 Outlook 2007 和 2010 中都有这种行为。有人可以帮我解决这个问题吗?

谢谢。

4

1 回答 1

1

您可以通过 DeliveryStore 从特定帐户访问特定于帐户的类别集合。

var account = Application.Session.Accounts[0];
var categories = account.DeliveryStore.Categories;

如果您想搜索您的帐户,您可以随时使用 linq

var account = Application.Session.Accounts.Cast<Account>()
    .FirstOrDefault(a => a.ExchangeMailboxServerName == "contoso.com");
于 2011-01-14T19:51:03.837 回答