Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Работа с pst файлами в С (https://forum.antichat.xyz/showthread.php?t=187864)

chamomilla 17.03.2010 21:50

Работа с pst файлами в С/C++
 
Проблема в следующем:
В случае использования Microsoft Outlook вся почта загружается на Ваш компьютер и хранится в одном PST файле (Он по своей сути похож на БД). В файле PST помимо почты хранятся Контакты, Заметки, Задачи - все объекты, которые видны в дереве папок. Очень часто эти PST достигают очень больших размеров (Мб или несколько Гб), и стащить их с чужого компьютера тяжело и нецелесообразно если необхдимо прочесть всего несколько писем.
Меня интересует: есть ли функции или библиотека для языка С, с помощью которой можна работать с этими файлами (то есть открыть, просмотреть. отфильтровать по дате или по заголовку)?

из того что я нашел есть только MAPI i libPST, может кто-то знает что-то более детально?

chamomilla 18.03.2010 13:20

все, чтоя нашел по данному вопросу упирается в Simple MAPI и MAPI 1.0 - набор динамических библиотек, которые содержат функции для работы с почтой. Конкретней говорится даже о том, что доступ к PST осуществляется посредством MAPI. кто-то слыхал? может доводилось работать?

Hiro Protagonist 18.03.2010 14:27

msdn слышало )
http://msdn.microsoft.com/ru-ru/library/245421h5.aspx

chamomilla 18.03.2010 14:32

Конечно слышал, но меня интересует вот что - используя MAPI мы действительно обращаемся к pst файлам Outlooka?
А при использованиии libpst для *nix подобных систем происходит чтение структуры пст файла (перечитывая соответствующие биты и байты), как работать в таком случае?

chamomilla 20.03.2010 22:41

Неужели никто никогда не работал с почтой??? не писал своих приложений для отправки и приема сообщений?
А что касается замечания товарища Hiro Protagonist, то msdn - дает не такую уж полную инфу, потому как формат файлов ПСТ является служебным и закрытым (хотя недавно Microsoft пообещали его открыть и представить детальную документацию)
Но если бы все программисты сидели и ждали пока им все готовенькое выложат....

t4Nk 21.03.2010 01:19

можно в исходниках readpst посмотреть как libpst использовать
доки по формату тоже есть. Осталось реализовать %)

chamomilla 22.03.2010 12:33

Я уже рассматривал вариант использования libpst, но все-таки остановился на MAPI - можно напрямую работать с сообщениями, без предварительного разбора файла пст по формату.
Так что будем юзать "мапи" и пока ограничимся готовыми функциями)))

chamomilla 22.03.2010 17:21

И так с помощью фунций MAPI удалось все-таки добраться до сообщений и прочесть их)))Но теперь возникла такая проблема:
появляется диалоговое окошко, в котором предлагается ввести логин и пароль, или просто выдается предупреждение о том, что мол Вы пытаетесь обратиься к файлам Outlooka, разрешить?
Каким образом можно "погасить" эти окна?
И еще:
Теперь мне нужно прочесть адрессную книгу, в MAPI есть функция MAPIAddress() - у меня с ней тоже все получилось, но опять таки выплывает окно - в котором отбражаются все контакты.
Есть вариант использования такой конструкции IMAPISession::OpenAddressBook (детально можно посмотреть сдесь)
Кто мне поможет с онной разобраться???

SWAPPER 23.03.2010 00:58

попробуй просто искать окно с неким текстом в заголовке и эмулировать нажатие клавиши ОК в этом окне, чтобы предоставить доступ твоей проге к аутлуку.

chamomilla 23.03.2010 16:12

Спасибо SWAPPER буду пробовать...

Я все таки доступился к адрессной книге!!!
теперь могу прочесть имена пользователей и их мыло)))
теперь хотелось бы попробовать получить и остальные данные о контактах из адрессной книги (например телефон, домашний адресс, вобщем все поля которые доступны аутлуку)...
каким образом можно это осуществить?

ЕЩЕ: можно ли прочесть и другие данные из пст файла, например заметки, календарь и т.д.???


Время: 00:38