我正在使用Outlook加载项,它将从共享邮箱中提取预定义类别列表。然后,用户将每个电子邮件从共享邮箱分配给这些类别
我的问题是我可以访问与帐户关联的所有类别
Outlook.Application application = new Outlook.Application();
Outlook.Categories categories = application.Session.Categories;
但无法找到一种方法来获取链接到共享邮箱的类别。
有没有办法获得共享邮箱类别?如果没有,我将如何处理这种情况,所以稍后我可以根据这些类别创建视图。
先感谢您。
类别存储在隐藏消息中,消息类为“IPM.Configuration.CategoryList”,位于商店的“日历”文件夹中。如果您转到共享的日历文件夹并单击IMAPIFolder按钮,则可以在OutlookSpy中看到它,然后转到“关联的内容”选项卡。
可以使用Outlook对象模型中的MAPIFolder.GetStorage
访问该隐藏消息。
您还可以使用Redemption集合访问RDOCategories(我的作者)中的Categories集合。 Redemption在会话级别(默认商店中的RDOSession.Categories
)和商店级别(RDOStore2.Categories
)上公开类别。可以使用RDOSession.GetSharedMailbox
打开共享邮箱。
以下是获取所选文件夹类别的代码。
public void LoadCategories()
{
CategoriesCombo.Items.Clear();
Outlook.Application application = new Outlook.Application();
Outlook.NameSpace ns = application.GetNamespace("MAPI");
Outlook.MAPIFolder selectedFolder = application.ActiveExplorer().CurrentFolder;
if (selectedFolder is Outlook.MAPIFolder)
{
Outlook.Folder folder = selectedFolder as Outlook.Folder;
Outlook.Store store = folder.Store;
Outlook.Categories categories = store.Categories;
}
}
如果有人有更好的答案,我会期待看到它。