Программный доступ к архивным письмам в папке Exchange
Я пытаюсь получить доступ ко всем письмам в данной папке через интерфейс ActiveX для Outlook 2013. Я использую API сообщений (MAPI) Outlook, чтобы получить нужный объект папки.
Однако, когда я просматриваю все элементы этого объекта папки, многие сообщения отсутствуют. Действительно, на сервере MS Exchange есть сообщения, которые не синхронизированы с Outlook, поскольку они слишком старые. (В Outlook папка заканчивается ссылкой под названием "Нажмите здесь, чтобы узнать больше о Microsoft Exchange". При нажатии на ссылку пропущенные сообщения появляются в Outlook. Однако они не добавляются в объект папки после этой операции.)
Как получить доступ к этим сообщениям? Возможно ли это через интерфейс Outlook ActiveX? Если нет, есть ли эквивалентный интерфейс к серверу MS Exchange?
1 ответ
Чтобы получить доступ к старым (но не архивированным) электронным письмам, вы можете либо
- Настройте учетную запись Exchange для синхронизации всех элементов в диалоговом окне свойств учетной записи Exchange. Outlook должен быть перезапущен.
- Настройте учетную запись Exchange для программной синхронизации всех элементов. Вы можете сделать это, используя Extended MAPI (только C++ или Delphi), в разделе профиля MSEMS необходимо установить флаг. Выкуп (любой язык) предоставляет RDOExchangeMailboxStore.
MonthsToKeepOffline
/DaysToKeepOffline
свойства. Outlook должен быть перезапущен. - Откройте родительскую папку в онлайн-режиме, используя флаг MAPI_NO_CACHE при вызове
IMsgStore::OpenEntry
(Только расширенный MAPI, C++ или Delphi). Redemption позволяет вам передать этот флаг, когда вы открываете папку с помощью RDOSession.GetFolderFromID
с любого языка.