На мой взгляд, у меня есть 1 обменное соединение и 2 личных папки.
Я хочу получить ВСЕ элементы из календарей и контактов, поэтому я использую:
/**
* Create outlook application
*/
Outlook.Application oApp = new Outlook.Application();
Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
oNS.Logon(Missing.Value, Missing.Value, true, true);
/**
* Loop through all the folders
*/
foreach (Outlook.MAPIFolder oFolder in oNS.Folders)
{
if (oFolder.Name == "Public Folders")
{
break;
}
/**
* Get calendar items
*/
//Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
Outlook.MAPIFolder oCalendar = oFolder.Folders[5];
Outlook.Items oCalendarItems = oCalendar.Items;
//Outlook.MAPIFolder oContacts = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
Outlook.MAPIFolder oContacts = oFolder.Folders[7];
Outlook.Items oContactItems = oContacts.Items;
но это не работает
oFolder.Folders[5]
не всегда 5 для календаря, иногда это другое значение.
Я не могу найти предметы по названию
oFolder.Folders["Calendar"];
потому что на голландском языке папка будет называться «Повестка дня».
Обычно я использую:
Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
Но тогда я получаю только календарь по умолчанию. Как я могу получить другие календари?