A workaround for the 1000 row limitation on Active Directory Interface

While working on a simple system that would allow using Microsoft Word to mail merge documents to users on the network, I bumped into the proverbial 1000 row limitation imposed by the Active Directory interface.

My fancy solution involves creating a view out of a query which links SQL server to the Active Directory using linked server. Creating a linked server is another story entirely. Numerous tutorials exist on the Internet that show how to interlink all manners of data sources to Microsoft SQL Server.

Now, back to the issue at hand, the view in question shows only 1000 rows and in the organization where the solution is to be used, there are well over 2000 users on the Active Directory. Trolling the internet didn’t bring a respite as most workarounds required very long VB codes that are a mile from being elegant.

At the end of the day, I used a brute force; wrote a series of queries and union them together:

CREATE view ADInterface as

select * from openquery (
ADSI,’SELECT displayname,samaccountname,mail,employeeID
FROM ”LDAP://cve-hq-s001.dejiolowe.com”
WHERE objectCategory = ”Person” AND objectClass = ”user” AND employeeID > 0000 and employeeID<3000′)
union
select * from openquery (
ADSI,’SELECT displayname,samaccountname,mail,employeeID
FROM ”LDAP://cve-hq-s001.dejiolowe.com”
WHERE objectCategory = ”Person” AND objectClass = ”user” AND employeeID > 3001 and employeeID<4500′)
union
select * from openquery (
ADSI,’SELECT displayname,samaccountname,mail,employeeID
FROM ”LDAP://cve-hq-s001.dejiolowe.com”
WHERE objectCategory = ”Person” AND objectClass = ”user” AND employeeID > 4501 and employeeID<5500′)

ColdFusion bouncing outside bound emails

Recently, I added some features to a framework so that it could send emails (piece of cake on ColdFusion). Well, I got my own emails while testing but a while later, something made me check the undelivered folder for ColdFusion mail engine only to discover that all outward bound mails have been dropped there.

I was baffled. I checked the internet connections, they were working fine. The SMTP server was receiving mails from ColdFusion if not I wouldnt have gotten those sent to me.

After banging my head on the walls for 30 minutes, I went to the IT department to check the configurations of the main Exchange 2003 server. There I discovered that IP addresses of servers that can use the Exchange server to route emails must be explicitly added. After doing that, the mails were still not going until I restarted my own ColdFusion server (I dont know why I had to do that but it worked).

This is actually no rocket science. The Exchange server sends the internal mails because those ones are not being routed while external mails must be routed before they get to their destinations. And since the router only takes mails from specified IP addresses, mine was promptly bounced.

Meanwhile, shame wouldnt allow me to say (now am saying it anyway) that I didnt check my mail log files until after I have resolved my issues. In clear terms, ColdFusion logged it that my mails could not be sent as the SMTP router was rejecting them