The Occasional Occurence

using ADODB and python to retreive an email address

November 06, 2003 at 12:41 AM | categories: Python

Ok, here is the code sample I promised. This was the best way I could come up with to get the Exchange email address of an Active Directory user when all I knew was their SAM account name. The following Python code worked for me running on Win32:

import win32com.client
def getEmail(user):
        #create an ADODB connection to get the email address for the logged in user
        conn = win32com.client.Dispatch('ADODB.Connection')
        conn.Provider = 'ADsDSOObject'
        conn.Open()
        #query for email address
        query = '    ldap ://yourdomain.com    ;(sAMAccountName=%s);mail;subtree' % user
        rs = conn.Execute(query)
        email = str(rs[0].Fields(0).Value) #here is where the email address is located in the record set
        rs[0].Close()
        conn.Close()
        return email
exch_email= getEmail('jpublic')

There you have it. It might not be the prettiest thing in the world, but it works for me. Feel free to comment if you have any thoughts.

Christian