Customizing Mailbox Limit Warnings with the Quota Message Service for Exchange

by [Published on 12 April 2005 / Last Updated on 12 April 2005]

In this article I will give you an insight into how you, with the use of the Quota Message Service for Exchange, can customize mailbox quota messages (aka mailbox limit warnings.)

Being able to customize these types of warnings have always been a very common request among Exchange admin’s, but unfortunately too complex for most to accomplish as it involved editing MDBSZ.DLL with RLQUIKED which is included with the Resource Localization Toolset.

The Quota Message Service for Exchange is a neat little program that was developed and still being updated by Jason Nelson, who’s a long time member of the Exchange development team at Microsoft (see his BIO here). Quota Message Service for Exchange was first made publicly available a little over a year ago, more precisely Tuesday, April 20, 2004. You can see the first blogpost about it on the Microsoft Exchange team blog (aka You Had Me At EHLO) here. Back then the program was in its very early stages and therefore didn’t include an installation wizard; in addition it unfortunately had several issues, which has been corrected by now (the reason why this article appears one year after the public release.)

Alright so what is the Exchange Quota Message Service for Exchange anyway? Well it’s a tool with which you can generate custom quota messages for users on Exchange server without editing DLLs (like was necessary in the past) and thereby send custom messages to users who exceed their quota. Exchange Quota Message Service for Exchange uses template messages as a basis for the quota messages. Templates can contain inserts that have the mailbox size, warning limit, send limit, and send receive limit, as well as the difference between each.

Prerequisites

Before even considering installing the Exchange Quota Message Service for Exchange program on your Exchange Server, there are a few prerequisites you must first fulfil.

  • Apply Exchange 2003 Server Service Pack 1 or if you’re still running Exchange Server 2000 this HotFix
  • Create a mailbox-enabled Active Directory user account for Exchange Quota Message Service for Exchange (for example name it QuotaMessageService)
  • Grant SYSTEM full mailbox rights to the newly created mailbox (done opening ADUC > enabling Advanced Features under View in the Menu> take Properties of the Active Directory user account > hit the Security tab)

Downloading and installing Quota Message Service for Exchange

You can download the Quota Message Service tool version (latest release at the time of this writing is 1.1.0) at the tools workspace over at GotDotNet.

Note:
You should be aware that in case you have a messaging environment consisting of multiple Exchange Servers, you need to create a quota message mailbox on each, also note the Quota Message Service for Exchange doesn’t support Public Folders.

When you have downloaded a copy of the tool simply execute Setup.exe as shown in Figure 1 below.


Figure 1: Executing the Quota Message Service Installation Wizard by double-clicking Setup.exe

Now click Next, see Figure 2 below.


Figure 2: Clicking Next in the Quota Message Service Installation Wizard

Now specify the SMTP address of the Quota Message Service Active Directory user account (see Figure 3), which was created earlier, then click Next.


Figure 3: Specifying the SMTP Address of the Quota Message Service Active Directory Account

Now its time to select the installation folder (the default shown in Figure 4 should be fine), then click Next.


Figure 4: Selecting the Installation Folder

We’re now ready to start the installation so click yes you guessed right – Next (see Figure 5).


Figure 5: Confirming the installation

Let the Installation Wizard complete, then click Close as shown in Figure 6.


Figure 6: Finishing the Installation Wizard

Post-Configuration

Now that the Quota Message Service for Exchange has been installed you need to create two registry keys in order to have the service fully configured (see Figure 7), therefore do the following:

  • Start the Registry editor (Start > Run > Regedit)
  • Drill down to HKLM\CurrentControlSet\Services\MSExchangeIs\servername>\<mdb guid>
  • Create a REG_DWORD value named Local System Ignores Quota, and set the value to 1 (note this value must be set on each <mdb guid> entry as the quota service otherwise won’t be able to save messages to users who are over shutoff (prohibit send and receive) quotas, if the exchange server does not use shutoff quotas the value can be set to 0 or be omitted)
  • Create a REG_DWORD value named Disable Quota Messages, and set the value to 1 (note this value as well must be set on each <mdb guid> entry, the value prevents the MSExchangeIS process from generating internal quota messages)


Figure 7: Creating the required Registry Keys

When the registry keys have been created you must restart the Information Store service, which can be done via the Services.msc snap-in (click Start > Run and type Services.msc) or by opening a command prompt and type NET STOP MSExchangeIS then NET START MSExchangeIS. Afterwards you can start the Microsoft Exchange Quota Service which is listed together with the rest of the Exchange services.

Configuring the QuotaMessageService Mailbox

The next steps are to:

  • Configure an Outlook profile to logon to the QuotaMessageService mailbox which were created in the beginning of the article
  • Copy the content of the quotamsg.pst (see Figure 8) which can be found in the Quota Message Service for Exchange installation directory(be aware the QuotaMessage folder should be copied to the Inbox and NOT a subfolder of the Inbox)

Note:
I won’t go through the specific steps necessary to create an Outlook profile and the procedure on how to copy the quotamsg.pst content to the Inbox folder in the mailbox, as that should be pretty obvious to all of you.


Figure 8: Copy the content of the QuotaMessages PST file to the inbox of QuotaMessageService mailbox

Doing a manual Quota run from ESM

When the Quota Message Service for Exchange is installed a quota maintenance option is added to the context menu of the Server object in the Exchange System Manager console, see Figure 9 below:


Figure 9: Doing a manual quota run from the Exchange System Manager

Note:
Executing a manual run resets the run interval so that the next run will occur at the completion time plus the scheduled run interval (default 24 hours.)

Customizing Quota Messages

Quota template messages are stored under a folder named QuotaMessages at the root of the mailbox.  Each folder under QuotaMessages is named with the decimal value of a LCID (Locale Identifier.)  In order to create localized quota messages, create a folder with the appropriate LCID (Locale Identifier) name and copy quota template messages to it.  Customize these messages to change the text for a language.  The parent messages for quota template messages have the subjects Warning, NoSend, and NoSendReceive. The embedded message in each of these is the quota template message which will be used to populate properties of the generate quota messages.

You can see a list of LCID’s values assigned by Microsoft here.

The body of the quota message template can contain references to insertion strings which will be replaced with information about a mailbox.

String

Description

%1

current mailbox size

%2

size at which mailbox will receive warning messages

%3

size at which the mailbox will no longer be able to send

%4

size at which the mailbox can no longer send or receive

%5

difference if any between warning threshold and current mailbox size

%6

difference if any between send prohibited threshold and current mailbox size

%7

difference if any between send and receive prohibited threshold and current mailbox size

Table 1: Quota Message Template Strings

Note:
You may want to disable the quota message mailbox, but bear in mind that SYSTEM must be granted full mailbox rights before doing so.

Modifying From: field on Quota Messages

A good idea is also to modify the From: field on the quota messages, this is accomplished the following way:

  • Log onto the mailbox which you want to appear in the From field. 
  • Compose a new message.
  • BCC the sender.
  • Set the subject to the desired subject for the quota message template.
  • Set the body to the desired body, using the inserts above to fill in mailbox details.  Do not reference inserts other those documented above (if you do, the service may crash).
  • Send the mail, and wait for it to be delivered,
  • Embed the message as delivered in the appropriate quota message template.
  • Restart the quota service.

Note:
For detailed information on the different Quota Message Service registry keys etc. created doing the installation, read the Quota Service Setup document which can be found in the installation folder.

Conclusion

With Quota Message Service for Exchange we’re getting very close to where we should have been years ago, the program of course can use some more polishing such as automatically create registry keys, a method for copying the Quota template messages to the mailbox  etc. But the Quota Message Service for Exchange demonstrates that a similar program could be native in Exchange 12, but only time will tell whether the Exchange Development team will give this type of request high enough priority to make it in the next version of Exchange.

Related reading

Exchange Quota Message Service: Workspace Home:
http://workspaces.gotdotnet.com/quotamsgsvc

Advertisement

Featured Links