MAPI: наиболее эффективный способ перебора всех папок и элементов в почтовом ящике

#performance #exchange-server #mapi

#Производительность #exchange-сервер #mapi #outlook-redemption

Вопрос:

Я пытаюсь проиндексировать элементы внутри почтового ящика exchange итак: какой наиболее эффективный способ перебора всех папок и элементов в почтовом ящике exchange с использованием MAPI и / или объектов данных восстановления (RDO)?

Я знаю RDOFolder.GetAllChildFolders (и IMAPIContainer::GetHierarchyTable) могут предоставить мне все папки (вероятно, наиболее эффективным способом), но как насчет элементов внутри папок?

Ответ №1:

Что вы собираетесь делать с элементами? Если вы просто хотите прочитать некоторые свойства, таблицы MAPI (http://www.dimastr.com/redemption/mapitable.htm ) в Redemption (я его автор) — это правильный путь, и RDOFolder.Items.MAPITable.ExecSQL , вероятно, проще всего получить данные. Если вам нужно извлечь большие строковые или двоичные свойства, вложения или изменить данные, у вас нет выбора, кроме как открывать каждый элемент отдельно.

Комментарии:

1. Я хочу прочитать следующие свойства PR_LONGTERM_ENTRYID_FROM_TABLE, PR_ENTRYID, PR_STORE_ENTRYID, PR_NORMALIZED_SUBJECT_W, PR_MESSAGE_SIZE, PR_LAST_MODIFICATION_TIME, PR_CREATION_TIME

2. Могу ли я сделать 1 RDOFolder. Товары. Сопоставляемый. ExecSQL должен выдавать мне все элементы в почтовом ящике?

3. Да, вы можете это сделать.