如何为多个Outlook帐户的主类别列表添加类别?

时间:2011-01-06 14:39:32

标签: c# add-in outlook-2007 categories master

我正在使用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中都有这种行为。有人可以帮我解决这个问题吗?

感谢。

1 个答案:

答案 0 :(得分: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");