MAPI - УЗНАТЬ E-MAIL АДРЕСА

Тема в разделе "WASM.NETWORKS", создана пользователем ganes, 27 дек 2004.

  1. ganes

    ganes New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2004
    Сообщения:
    62
    Адрес:
    Ukraine
    Мне надо узнать список е-мейл адресов всех узверей

    из адресной книги Оут-Глюка, ето можно зделать через

    MAPI, но как именно немогу разобраться, чото связанное с:

    MAPILogonEx()

    MAPIFindNext()

    Вроде в этом районе надо глядеть, если моя идея осуществима то как? А то разбирать .WAB файлы стало неблагодарное дело, после того как они стали все в юникоде

    или в base64 писать... Если ктось еще знает методы этого

    чорного дела, то поделитесь.. Думаю тема будет интересна многим. Заранне респект всем!
     
  2. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Аутглюка или аутглюка-экспресс?
     
  3. ganes

    ganes New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2004
    Сообщения:
    62
    Адрес:
    Ukraine
    можно и то-ито, думаю это можно реализовать.....
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105


    ... и без хлеба

    Юникод не такая уж сложная вещь.

    Все адреса там видны, просто все буквы прорежены

    байтами 0. Элементарная программа.
     
  5. kyprizel

    kyprizel New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    232
    Адрес:
    TSK
    29a #5, если не ошибаюсь - там было.
     
  6. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Если аутглюка, то смотреть в сторону

    MAPILogonEx()

    IMAPISession::OpenAddressBook()

    IAddrBook::OpenEntry()

    IABContainer::GetHierarchyTable()

    IABContainer::OpenEntry()

    IABContainer::GetContentsTable()

    IMailUser::GetProps (PR_SMTP_ADDRESS)


    Вообще, для начинающего юникод попроще будет.

    (Я имею ввиду начинающего работать с МАПЯми)



    Сорри, не IMAPIContainer, а IABContainer
     
  7. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Если для аутглюка экспресс - тот пользуется виндовс адресной книгой (wab), врать не буду, точно не помню, но кажись надо так:

    WABOpen()

    IAddrBook::GetPAB()

    IAddrBook::OpenEntry()

    IABContainer::GetContentsTable()

    IABContainer::OpenEntry()

    IMailUser::GetProps()
     
  8. ganes

    ganes New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2004
    Сообщения:
    62
    Адрес:
    Ukraine
    А сырцов для наглядности не укого случайно нету? Если незатруднит вылажете тута, ...
     
  9. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Сырцов нету, но в принципе не в облом написать будет, если тебя примерчик на сях устроит.
     
  10. ganes

    ganes New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2004
    Сообщения:
    62
    Адрес:
    Ukraine
    Си я немного знаю, так что мне несоставит труда это все в

    asm перевести, если сможешь хоть на сях то буду очень признателен...
     
  11. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Сорри за задержку - вот вариант для Outlook'а (не экспресс!)
    Код (Text):
    1.  
    2. #include <windows.h>
    3. #include <mapix.h>
    4. #include <mapiutil.h>
    5. #include <stdio.h>
    6.  
    7. void main ()
    8. {
    9. MAPIInitialize (NULL);
    10.  
    11. IMAPISession* pSession = NULL;
    12. long err = MAPILogonEx (0, "", NULL, MAPI_USE_DEFAULT, &pSession);
    13.  
    14. if (err)       // Проверка остальных ошибок - в этом же духе
    15. {
    16.     printf ("Error!!!");
    17.     return;
    18. }
    19.  
    20. IAddrBook* pBook = NULL;
    21. pSession->OpenAddressBook (0, NULL, AB_NO_DIALOG, &pBook);
    22.  
    23. ULONG cbEntryId = 0;
    24. ENTRYID* pbEntryId = NULL;
    25. pBook->GetPAB (&cbEntryId, &pbEntryId);
    26.  
    27. ULONG ObjType;
    28. IMAPIContainer* pPabContainer = NULL;
    29. pBook->OpenEntry (cbEntryId,pbEntryId, NULL, 0, &ObjType, (IUnknown **)&pPabContainer);
    30.  
    31.  
    32. IMAPITable* pTable = NULL;
    33. pPabContainer->GetContentsTable (0, &pTable);
    34.  
    35. SizedSPropTagArray (1, spta) = {1, {PR_EMAIL_ADDRESS}};
    36. SRowSet* pRows = NULL;
    37. HrQueryAllRows (pTable, (SPropTagArray*)&spta, NULL, NULL, 0,&pRows);
    38.    
    39. for (UINT i = 0; i < pRows->cRows; i++)
    40.     printf ("%s\n", pRows->aRow[i].lpProps->Value.lpszA);
    41. }
    42.  
     
  12. Vovane

    Vovane New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2004
    Сообщения:
    58
    Адрес:
    Afghanistan
    Asm вариант читалки email-лов из WAB-а.

    Все адреса выводится по очереди в мессбокс.

    [​IMG] _911120100__WAB.rar