Hi all, Mark wrote: >Why? Is something missing, or it just tricky? > >Sadly, if you want easy, you use CDO/Simple MAPI. Extended MAPI is not for >the faint hearted (or for people with deadlines :)
I think, that's not a matter of to be clench or not. Diving into a crazy organized library with poor and peripheral dokumentation is just waste of time. But anyway, if there are more faint hearted outside, here is the code working for me: <code> from win32com.mapi.mapitags import * from win32com.mapi import mapi from win32com.mapi import mapiutil profileName = "Test" session = mapi.MAPIInitialize(None) session =mapi.MAPILogonEx(0,profileName,None, mapi.MAPI_EXTENDED | mapi.MAPI_LOGON_UI |\ mapi.MAPI_NO_MAIL |mapi.MAPI_USE_DEFAULT) hr=session.OpenAddressBook(0,None,mapi.AB_NO_DIALOG) ##open rootcontainer root=hr.OpenEntry(None,None,mapi.MAPI_BEST_ACCESS) ##get items root_htab=root.GetHierarchyTable(0) ##restrict for GAL ##SPropValue should be 'DT_GLOBAL' but not defined in mapitags DT_GLOBAL=131072 restriction = (mapi.RES_PROPERTY, (1, PR_DISPLAY_TYPE, (PR_DISPLAY_TYPE, DT_GLOBAL))) ## get GAL's entryid tuple gal_id = mapi.HrQueryAllRows(root_htab, (PR_ENTRYID), restriction, None, 0) ## extract GAL's entryid gal_id = gal_id[0][0][1] ## open GAL gal=hr.OpenEntry(gal_id,None,mapi.MAPI_BEST_ACCESS) ## get content gal_list=gal.GetContentsTable(0) ## no readable tagname for smpt PR_SMTP=972947486 rows = mapi.HrQueryAllRows(gal_list, (PR_ENTRYID, PR_DISPLAY_NAME_A,PR_ACCOUNT,PR_SMTP), None, None, 0) for eid,name,alias,smtp in rows: print name[1],alias[1],smtp[1] mapi.MAPIUninitialize() </code> PS.: Expanding a distribution lists of the GAL needs to set the address type of that dl to 'MAPIPDL', but I'm lacking the permissions - crazy, crazy regards, Jürgen ------------------------------------------------- This mail sent through IMP: http://horde.org/imp/ _______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32