J'ai une liste de noms, certains d'entre eux complets, certains tronqués. Je voudrais rechercher la recherche dans la liste d'adresses Outlook pour ces noms.Comment rechercher un nom dans la liste d'adresses globale Outlook (2010)?
Le plus proche, je suis venu est ce code Python which came from ActiveState Code, mais il ne recherche pas les adresses globales, seulement ma liste (locale?), Qui a 3 adresses dedans, ce qui n'est évidemment pas correct. Il devrait y avoir des milliers d'enregistrements.
Tous les conseils sont les bienvenus. J'ai googlé et lu des dizaines de pages, mais rien de concluant. Je préfère ne pas me connecter au LDAP directement, je pense que c'est une violation de politique dans mon organisation et d'ailleurs je ne suis pas sûr que ce soit possible. Aimerait le faire via l'API Outlook si possible.
DEBUG=1
class MSOutlook:
def __init__(self):
self.outlookFound = 0
try:
self.oOutlookApp = \
win32com.client.gencache.EnsureDispatch("Outlook.Application")
self.outlookFound = 1
except:
print("MSOutlook: unable to load Outlook")
self.records = []
def loadContacts(self, keys=None):
if not self.outlookFound:
return
# this should use more try/except blocks or nested blocks
onMAPI = self.oOutlookApp.GetNamespace("MAPI")
ofContacts = \
onMAPI.GetDefaultFolder(win32com.client.constants.olFolderContacts)
if DEBUG:
print("number of contacts:", len(ofContacts.Items))
for oc in range(len(ofContacts.Items)):
contact = ofContacts.Items.Item(oc + 1)
if contact.Class == win32com.client.constants.olContact:
if keys is None:
# if we were't give a set of keys to use
# then build up a list of keys that we will be
# able to process
# I didn't include fields of type time, though
# those could probably be interpreted
keys = []
for key in contact._prop_map_get_:
if isinstance(getattr(contact, key), (int, str, unicode)):
keys.append(key)
if DEBUG:
keys.sort()
print("Fields\n======================================")
for key in keys:
print(key)
record = {}
for key in keys:
record[key] = getattr(contact, key)
if DEBUG:
print(oc, record['FullName'])
self.records.append(record)
liens au hasard:
MSDN - How to create a Global Address List programmatically using Visual Basic
Infinitec - How to get the Global Address List programatically
Return Boolean True - Downloading the Global Address List from Outlook/Exchange
Grokbase - [python-win32] getting global addressbook with extended mapi
Stack Overflow - Searching Outlook Global Address
Une autre tentative a échoué à la liste
Stack Overflow - Retrieving outlook Contacts via python
C'est là que je suis le lien ci-dessus
Stack Overflow - Fetching Outlook Contacts with Python
ne fonctionne pas du tout
Python for Windows - Automating Microsoft Outlook
carnet d'adresses Juste par défaut. D'ailleurs je veux chercher, ne liste pas tout.
Si quelqu'un peut trouver une solution que je ne me dérange pas si c'est C++, VB, Perl, Python, etc.
Donc ce que vous avez fait jusqu'à présent pour résoudre ce problème est de trouver une vieille pile solution de débordement que vous pensez être proche et le renvoyer dans une autre question, dans l'espoir que quelqu'un écrira le code pour vous. Avez-vous réellement écrit * any * code et avez-vous un problème * spécifique *? – Borodin