Microsoft Exchange Server for Windows 2000: Planning, Design, and Implementation

Application programming is a race between software engineers, who strive to produce idiot-proof programs, and the Universe, which strives to produce bigger idiots.
www.greymatter.co.uk/humour/
Unless you are a fully qualified MAPI programmer, none of the versions from Exchange 4.0 through Exchange 5.5 can be regarded as being very customizable. On the server side, an Exchange Development Kit (EDK) is available to allow software developers to integrate products with Exchange, but the learning curve is such that only experienced developers are able to extend Exchange. This is the reason why the vast majority of Exchange servers run out-of-the-box code supplemented with a few commercial products. You won't find many installation-specific extensions that operate on a server level.
On the client side, application development facilities haven't been particularly strong either. Exchange 4.0 began with the ability to build electronic forms that could be associated with public folders, but the development utilities were slow and cumbersome and never realized its potential in the hands of developers. The arrival of Outlook saw the Exchange Forms Designer (EFD) tool dropped in favor of the combination of Outlook forms and the first version of CDO. CDO is designed to make it easy to program against complex objects such as mailboxes, folders, messages, and attachments. Developers have been much more successful with Outlook forms and CDO, but CDO has been limited to client-side operations up to this point.
Exchange 2000 introduces many new features that allow programmers to build rich collaborative applications with much less...