Last week, I wrote about the cool Really Simple Syndication (RSS) format and how you can use it to stay informed about Exchange Server topics. After I wrote my column, the Exchange Server team at Microsoft (more specifically, Jason Nelson and KC Lemson) proved my point by using the Microsoft Exchange Team Blog ( http://blogs.msdn.com/exchange/archive/2004/04/20/117024.aspx ) and its associated RSS feed to break a significant piece of news: Finally, you can customize the content of quota messages--the messages that Exchange sends to users who go over their mailbox quota limits.
I won't repeat the arguments for and against using quotas. Suffice it to say that many organizations use quotas to keep the size of their mailboxes, and thus their mailbox databases, predictable. For these organizations, the inability to customize quota messages has long been an irritation. Now, those of us who want custom messages can implement them. The solution comes in four parts:
- Support for a registry value that tells the System Attendant not to send quota-related messages to users. When you apply this value, the Store maintenance process works normally and generates quota event log messages but doesn't send quota messages to users.
- Support for a registry value that permits message delivery to mailboxes that are over quota. Only applications or services running in the LocalSystem security context can submit messages for delivery using this mechanism.
- Support for a Store interface change that exposes quota information as a mailbox property.
- A new service--the Exchange Quota Message service--that runs in the LocalSystem security context and scans the mailbox database, checking each mailbox for its quota status. For mailboxes that exceed their quotas, the service generates and delivers a message, which you can customize.
The first three parts of the solution are included in the forthcoming Exchange Server 2003 Service Pack 1 (SP1) and in the recent post-SP3 rollup for Exchange 2000 Server. The fourth part--the Exchange Quota Message service and related documentation--is available from a shared site at GotDotNet ( http://workspaces.gotdotnet.com/quotamsgsvc ).
This solution is fairly elegant but still has several rough edges, the most significant of which is that you must manually install and configure the service. Although this task won't be a hurdle for many of you, it isn't as simple as just double-clicking an .msi file. Also, a lot of potential features (e.g., support for public folders) have yet to be implemented. These shortcomings, though, are more than made up for by Nelson's decision to release the source code for the service, under a license that allows modification and redistribution. Of course, the license doesn't provide unlimited freedom (you can't resell the code, for example), and Microsoft doesn't offer direct support for the service. But making the code available opens up the possibility of someone else developing the features that Nelson didn't have time to implement.
I'm hoping that this trend will catch on, and that other developers with cool ideas will lay the groundwork to build community-supported tools (in addition to the many excellent commercial products that already exist). Not every long-requested feature can be developed and implemented like the new Exchange Quota Message service, but it sets a great precedent.