We're currently using Google Apps for student and staff e-mail. Between the GMail interface and Google Apps Sync for Outlook, it isn't half bad.

Unfortunately, because the Google Apps domain is effectively county wide, we're apparently unable to make use of any of the shared address book features. Thus we've had less than ideal solutions in place for staff to look up the addresses of other staff, ranging from looking in an excel spread sheet, to importing a CSV file to GMail or Outlook. Naturally an import will quickly become out of date.

Our head is now interested in a real centralized address list, complete with distribution lists. Has anyone else had any experience with setting up global address books without Exchange? (and preferably without throwing any money at the problem!)

My first thought was to try to emulate the Exchange GAL by having Outlook query an LDAP server. As Outlook does not appear to support integrated Windows authentication when binding to LDAP, using Active Directory directly would be problematic. Thus I created an AD LDS/ADAM instance and enabled anonymous binding - this seems to work well for individual contacts, and syncing it with the staff addresses in AD would likely be a case of creating a scheduled task that invoked ldifde (and did a bit of cleaning up). Unfortunately I can't for the life of me figure out how to store distribution lists that Outlook recognizes - there's a few guides on emulating the GAL in OpenLDAP, but nothing definitive on how to create proper lists. There's also the fact that this address book would likely be unavailable if the user is not connected to our network - i.e. they'd be unable to get the list of contact when they take their laptop home.

So the second solution would be to write some sort of login script that utilises Outlook automation - querying a directory, and creating the appropriate contacts and lists inside outlook (hopefully in a special contacts folder so as to not disturb the user's own contacts). This seems like it would be the simplest and most robust solution. There will be a small learning curve however (the API itself seems quite good, but I haven't yet found what I'd call a good reference). From what I understand we're looking at deploying something this week...

So, anyone else tackled/tackling the problem?