Я пытаюсь получить список папок и подпапок в общем почтовом ящике в Outlook. Использовать режим кэширования Exchange и установить флажок «Загрузить общие папки». Папки до 3 уровней: Inbox => Компания => Компания ABC. Ниже мой код.C# Outlook Shared Mailbox get subfolders intermittent
myApp = new Microsoft.Office.Interop.Outlook.Application();
ns = myApp.Session;
stores = ns.Stores;
for (int i = 1; i <= stores.Count; i++)
{
var _store = stores[i];
if (_store.DisplayName.ToLower().Contains(displayName.ToLower()))
{
store = _store;
break;
}
}
rootFolder = store.GetRootFolder();
folders = rootFolder.Folders;
for (int i = 1; i < folders.Count; i++)
{
mainfolder = (Microsoft.Office.Interop.Outlook.MAPIFolder)folders[i];
if (mainfolder != null)
{
if (mainfolder.Name.Trim().ToLower() == mainfolderName.Trim().ToLower())
{
foreach (Microsoft.Office.Interop.Outlook.MAPIFolder f in mainfolder.Folders)
{
if (f.Name.Trim().ToLower() == folderName.Trim().ToLower())
{
folder = f;
if (subFolderName != "")
{
foreach (Microsoft.Office.Interop.Outlook.MAPIFolder sub in f.Folders)
{
if (sub.Name.Trim().ToLower() == subFolderName.Trim().ToLower())
{
subfolder = sub;
break;
}
}
}
break;
}
}
break;
}
}
}
Он успешно получить первый уровень - Входящие, Черновики, архив, спам и т.д. Но это не всегда получает второй уровень, mainfolder.Folders.Count возвращает 0. Есть ли что-то я пропустил? Спасибо.
Можете ли вы увидеть эти папки в Outlook? Вы пытались отключить режим кэширования? –
Да, я могу видеть эти папки в моем Outlook. Отключение режима кэширования делает Outlook недействительным когда-то, и это также невозможно в соответствии с нашей ИТ-командой. Я не могу понять, почему иногда его работают, а иногда нет. Это связано с подключением к Интернету? – rjs123431