win32com.client (Howto edit Contacts in Outlook)

Bill Davy Bill at SynectixLtd.com
Fri Jul 4 10:03:19 EDT 2008


"Tim Golden" <mail at timgolden.me.uk> wrote in message 
news:mailman.61.1215177888.20628.python-list at python.org...
> Bill Davy wrote:
>> I am trying to edit Contacts in Outlook.  This is so I can transfer 
>> numbers from my address book which is an Excel spreadsheet to my mobile 
>> phone.  I came across the following snippet of code
>
> --- hey! that looks familiar :)
>
>> which enabled me to the contacts at least list.  I had to root around to 
>> discover CdoDefaultFolderContacts (though it was guessable; how could I 
>> enumerate win32com.client.constants?).
>
> Well that bit's easy: win32com.client.constants is a small class with
> a __dicts__ attribute (note the "s") which is a list of dictionaries, one
> per generated library. So you can do something like this:
>
> <code>
> import win32com.client
>
> outlook = win32com.client.gencache.EnsureDispatch ("Outlook.Application")
> outlook_constants = win32com.client.constants.__dicts__[0]
>
> for k, v in outlook_constants.items ():
>  print k, "=>", v
>
> </code>
>
>> I now want to work through the Contacts in Outlook patching in data from 
>> my spreadsheet, and also making new contacts where there is an entry in 
>> my spreadsheet which has not gone into Contacts already.
>
> OK.
>
>> Where can I find the API?
>
> I recommend:
>
>  http://msdn.microsoft.com/en-us/library/ms526861.aspx
>
> and
>
>  http://www.outlookcode.com/article.aspx?id=20
>
> and
>
>  http://www.cdolive.com/cdo10.htm
>
> TJG


Brilliant.  But I was a bit disappointed by one experiment.  In MSDN I found 
"Exploring the Outlook Object Model".  That suggested:
Outlook | Tools | Macros | VB Editor | View | Object Browser

There I found ContactItems and reckoned I was onto a winner, but found that 
a "message" from the ContactFolder might have Subject but it did not have a 
FullName.  Also, if Python crashed, it left Outlook complaing that someone 
was accessing it but had disappeaared so Outlook has to be restarted each 
time.

But you have suggested some more things to look at so thanks.  I have had a 
quick look but have not so far even found "Subject" as a member/property of 
a message/contact.  I shall keep looking.

Rgds,
   Bill 





More information about the Python-list mailing list