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