1
1
Fork 0

added getmailad

This commit is contained in:
David Starzengruber 2012-05-22 01:40:38 +02:00
parent c50af138a7
commit b4c6096d4b
1 changed files with 68 additions and 0 deletions

68
getmailad.py Executable file
View File

@ -0,0 +1,68 @@
#!/usr/bin/python2 -B
class getmailad(object):
""" get all email addresses from enabled(not disabled)
users/groups from active directory """
""" tested with windows 2003 domain """
def __init__(self):
self.addresslist = []
self.count = 0
#TODO: make this configurable via constructor
self._ldap_server = "ldap://dc2.aec.at"
self._bind_dn = "david@aec.at"
self._bind_pass = "toolbandbaby!"
self._base_dn = "ou=adm,dc=aec,dc=at"
def get(self):
""" connect to active directory and get
a list of email addresses """
import ldap
try:
instance = ldap.initialize(self._ldap_server)
instance.simple_bind_s(self._bind_dn, self._bind_pass)
#ldap querry
result = instance.search_s(self._base_dn, ldap.SCOPE_SUBTREE, ("cn=*"), ["mail", "proxyAddresses", "userAccountControl"])
counter = 0
for item in result:
if item[1].has_key("userAccountControl"):
if item[1]["userAccountControl"] == ["512"] or item[1]["userAccountControl"] == ["66048"]:
if item[1].has_key("proxyAddresses"):
addresslist = item[1]["proxyAddresses"]
for address in addresslist:
if "SMTP:" in address or "smtp:" in address:
self.addresslist.append(address[5:].lower())
counter += 1
self.count = counter
except ldap.LDAPError, error_message:
pass
try:
instance.unbind()
except ldap.LDAPError, error_message:
pass
if __name__ == "__main__":
getmailadobj = getmailad()
getmailadobj.get()
print getmailadobj.addresslist
print "\nMail addresses found: %i" %(getmailadobj.count)
#end of file