Работа с pst файлами в С/C++ Проблема в следующем: В случае использования Microsoft Outlook вся почта загружается на Ваш компьютер и хранится в одном PST файле (Он по своей сути похож на БД). В файле PST помимо почты хранятся Контакты, Заметки, Задачи - все объекты, которые видны в дереве папок. Очень часто эти PST достигают очень больших размеров (Мб или несколько Гб), и стащить их с чужого компьютера тяжело и нецелесообразно если необхдимо прочесть всего несколько писем. Меня интересует: есть ли функции или библиотека для языка С, с помощью которой можна работать с этими файлами (то есть открыть, просмотреть. отфильтровать по дате или по заголовку)? из того что я нашел есть только MAPI i libPST, может кто-то знает что-то более детально?
все, чтоя нашел по данному вопросу упирается в Simple MAPI и MAPI 1.0 - набор динамических библиотек, которые содержат функции для работы с почтой. Конкретней говорится даже о том, что доступ к PST осуществляется посредством MAPI. кто-то слыхал? может доводилось работать?
Конечно слышал, но меня интересует вот что - используя MAPI мы действительно обращаемся к pst файлам Outlooka? А при использованиии libpst для *nix подобных систем происходит чтение структуры пст файла (перечитывая соответствующие биты и байты), как работать в таком случае?
Неужели никто никогда не работал с почтой??? не писал своих приложений для отправки и приема сообщений? А что касается замечания товарища Hiro Protagonist, то msdn - дает не такую уж полную инфу, потому как формат файлов ПСТ является служебным и закрытым (хотя недавно Microsoft пообещали его открыть и представить детальную документацию) Но если бы все программисты сидели и ждали пока им все готовенькое выложат....
можно в исходниках readpst посмотреть как libpst использовать доки по формату тоже есть. Осталось реализовать %)
Я уже рассматривал вариант использования libpst, но все-таки остановился на MAPI - можно напрямую работать с сообщениями, без предварительного разбора файла пст по формату. Так что будем юзать "мапи" и пока ограничимся готовыми функциями)))
И так с помощью фунций MAPI удалось все-таки добраться до сообщений и прочесть их)))Но теперь возникла такая проблема: появляется диалоговое окошко, в котором предлагается ввести логин и пароль, или просто выдается предупреждение о том, что мол Вы пытаетесь обратиься к файлам Outlooka, разрешить? Каким образом можно "погасить" эти окна? И еще: Теперь мне нужно прочесть адрессную книгу, в MAPI есть функция MAPIAddress() - у меня с ней тоже все получилось, но опять таки выплывает окно - в котором отбражаются все контакты. Есть вариант использования такой конструкции IMAPISession::OpenAddressBook (детально можно посмотреть сдесь) Кто мне поможет с онной разобраться???
попробуй просто искать окно с неким текстом в заголовке и эмулировать нажатие клавиши ОК в этом окне, чтобы предоставить доступ твоей проге к аутлуку.
Спасибо SWAPPER буду пробовать... Я все таки доступился к адрессной книге!!! теперь могу прочесть имена пользователей и их мыло))) теперь хотелось бы попробовать получить и остальные данные о контактах из адрессной книги (например телефон, домашний адресс, вобщем все поля которые доступны аутлуку)... каким образом можно это осуществить? ЕЩЕ: можно ли прочесть и другие данные из пст файла, например заметки, календарь и т.д.???
мои "разборки" длились очень долго но вроде бы я их победил...выяснил следующее: Для доступа к пст файлам существует 2 варианта: 1. Simple MAPI - #include <mapi.h> 2. Extended MAPI - #include <mapix.h> Simple MAPI представлен набором из 12 функций. который предоставляют возможность для работы в основном только с папкой для входящих сообщений (Inbox), ниже приведены все 12 функций:2.1. MAPIAddress Code: 1. MAPIAddress 2. MAPIDeleteMail 3. MAPIDetails 4. MAPIFindNext 5. MAPIFreeBuffer 6. MAPILogoff 7. MAPILogon 8. MAPIReadMail 9. MAPIResolvName 10. MAPISaveMail 11. MAPISendDocumets 12. MAPISendMail А вот второй интерфейс предоставляет гораздо больше возможностей - есть специальные методы для доступа к Адрессной книги, всем папкам пользователя (Входящие, Исходящие, Черновики, Заметки). Почти все методы описаны в MSDN, но уж очень скудненько. Хотя именно Extended MAPI дает довольно таки неплохие возможно поковыряться в чужой почте, начиная с контактов пользователя, закачивая чем угодно на Ваш вкус))). И еще полезная заметка для тех. кто возможно заинтересуется - при работе с Extended MAPI в качестве наглядного пособия очень удобно использовать утилитку OutlookSPY!!! Кто заинтересован в данной теме - пишите!!!