2016-04-29 2 views
1

Я пытаюсь извлечь список категорий в определенной папке Outlook с помощью Python.Получить список категорий в конкретной папке Outlook/inbox

Например, я подключен к следующим почтовым ящикам «Персональный» и «Работа».

Следующий код возвращает список категорий в главном списке для моего личного почтового ящика:

outlook = win32com.client.Dispatch("Outlook.Application") 
myfolder = outlook.GetNamespace("MAPI").Folders["Work"] 
for cat in myfolder.session.categories: 
    print cat 

Так как я могу получить этот список для моей работы почтового ящика?

ответ

0

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

Вы можете получить доступ к этому скрытому сообщению, используя MAPIFolder.GetStorage в объектной модели Outlook, или вы можете использовать Redemption и его RDOCategories объекта (выставляемый RDOSession и RDOStore2 объектов).

+0

Спасибо за ваш ответ. У меня нет локальных прав администратора, поэтому я не могу установить какие-либо дополнительные инструменты. Мне нужно получить список категорий только с Outlook и Excel. Вы говорите, что это невозможно? Это любопытство, поскольку я могу явно получить доступ к категориям в своей личной папке, но не к папке shared/work. – Vlad

+0

OutlookSpy может быть установлен без прав администратора. Что вы подразумеваете под «общей/рабочей папкой»? Это почтовый ящик делегата Exchange? –

+0

Это [общий почтовый ящик] (https://support.office.com/en-us/article/Open-and-use-a-shared-mailbox-in-Outlook-Web-App-BC127866-42BE-4DE7 -92AE-1EF2F787FD5C) на сервере обмена, да. Настройка OutlookSpy не позволит мне работать без входа в систему как admin. – Vlad

0

попробуйте выполнить итерирование элементов папки.

myfolder = outlook.GetNamespace("MAPI").Folders['Work'] 
for messages in myfolder.Items: 
    print(messages) 
+0

Вы получите список регулярных сообщений. Как это помогает получить список ** категорий **? –

+0

ну ладно, поэтому он не хочет список сообщений, а только категории –

Смежные вопросы