【问题标题】:How to add a category to the Master Category List for multiple Outlook accounts?如何将一个类别添加到多个 Outlook 帐户的主类别列表?
【发布时间】:2011-01-06 14:39:31
【问题描述】:

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

谢谢。

【问题讨论】:

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


    【解决方案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");
    

    【讨论】:

    • 嗨,这真的适用于 Outlook 2007 吗?我在访问account.DeliveryStore 时收到错误“AccessViolationException:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”。根据Account Object Documentation这个属性不存在。
    猜你喜欢
    • 2012-03-16
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 2021-08-10
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多