Получить определенные пользователем категории из общего почтового ящика в Outlook C # - PullRequest
0 голосов
/ 05 апреля 2019

Я работаю над надстройкой Outlook, которая будет извлекать список предопределенных категорий из общего почтового ящика.Затем пользователь назначает каждое электронное письмо из общего почтового ящика этим категориям.

Моя проблема в том, что я могу получить доступ ко всем категориям, привязанным к учетной записи, используя

Outlook.Application application = new Outlook.Application();
Outlook.Categories categories = application.Session.Categories;

, но не могу найти способ получитькатегории, связанные с общим почтовым ящиком.

Можно ли получить категории общих почтовых ящиков?Если нет, как бы я справился с этим сценарием, чтобы позже я мог создать представление на основе этих категорий.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Категории хранятся в скрытом сообщении с классом сообщений «IPM.Configuration.CategoryList» в папке «Календарь» хранилища.Вы можете увидеть его в OutlookSpy , если перейти в общую папку «Календарь» и нажать кнопку IMAPIFolder, а затем перейти на вкладку «Связанное содержимое».

Доступ к этому скрытому сообщению можно получить с помощью MAPIFolder.GetStorage в объектной модели Outlook.

Вы также можете получить доступ к коллекции Категории в Погашение (я ее автор), используя коллекцию RDOCategories .Погашение предоставляет категории как на уровне сеанса ( RDOSession . Categories из хранилища по умолчанию), так и на уровне хранилища ( RDOStore2 . Categories).Общий почтовый ящик можно открыть с помощью RDOSession.GetSharedMailbox.

0 голосов
/ 03 мая 2019

Ниже приведен код для получения категорий выбранной папки.

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;
        }
    }

Если у кого-то есть лучший ответ, я бы с нетерпением ждал его.

...