Exchange Server offers many ways to customize what the client can view. For example, Address Book Views (ABVs) can provide a way to narrow the client's view of an otherwise crowded recipient containers list. (For an explanation of ABVs, see "Using Address Book Views in Exchange Server," January 1999.) You can also implement permissions on public folders to keep nonauthorized users from seeing sensitive information.

Another potential—but little discussed—area you can customize is details templates. Templates are electronic forms for displaying data about an object, and details templates are forms that contain information about recipients (e.g., mailboxes, custom recipients, public folders, distribution lists) or a message. When users view the property sheet of an Exchange Server recipient, they are using a details template to view the attributes and settings of that object. By modifying these templates from Exchange Server, you can determine what data appears (or doesn't appear) when the client requests information from the Global Address List (GAL).

Exchange Server has built-in generic templates, but you can add, delete, or modify the information that the templates display to clients. For example, by changing the templates, you can let mailbox owners know the company's storage limits for mailboxes or the size limits of outgoing messages for a public folder.

In this article, I'll show you how to extend Exchange Server details templates so the client can view information about recipients typically available only at the server. I'll also explain how to add new fields and expose them to the client and how to use details templates to do advanced searches on recipients.

Details Templates Overview
Details templates reside on the Exchange server. Users can view these templates from the messaging client (Exchange or Outlook) by selecting the property sheet of any Exchange Server recipient. Click the Address Book icon on the toolbar, or go to Tools, Address Book and select a recipient, and click Properties to access the information the details template displays. Screen 1 shows the properties of a typical mailbox that Outlook displays with the default Mailbox template.

Screen 2 shows Exchange Server's seven details templates: Custom Recipient, Distribution List, Exchange Send Options, Mailbox, Mailbox Agent, Public Folder, and Search Dialog. You can view and edit these templates from the Microsoft Exchange Administrator program.

Most of these templates refer to Exchange Server recipients, but you use two of the templates for other tasks. The Exchange Send Options template lets you specify when Exchange sends and expires messages. The Search Dialog template controls how you conduct client searches.

Screen 2 shows that my templates are in English, because I installed the English version of Exchange Server. If you prefer, you can see details about recipients from clients in other languages (i.e., French, German, and Japanese). The Microsoft article "XADM: How to Add Templates for Different Language Clients" (http://support.microsoft.com/support/kb/articles/q159/7/21.asp) explains how to configure these templates. Note that the templates don't replicate across sites, so if you want to add other foreign language templates in an intersite environment, you must install them in each site.

Working with the Details Template
Let's take a closer look at details templates. From Exchange Administrator, go to Configuration, Addressing, Details Templates, %Language%. To open a template's property sheet, double-click the template. Screen 3 shows the Mailbox template.

The General tab lets you define a Help file for a template. Exchange Server includes built-in Help files. If you add new tabs to a details template, you can to modify the .hlp file so users can obtain information about each field on the new tab by clicking Help.

The Permissions tab displays who can perform tasks on details templates. By default, permissions you define at the Configuration container flow down to all the templates. You can add a Windows NT user to this window to allow the user to modify templates from the Exchange Administrator program.

On the Templates tab, you can modify a Windows-based template. (MS-DOS templates have a separate tab for customization.) From here, you can determine what information the client sees or what tasks the client can perform (e.g., advanced searches, send options). Exchange Server offers no GUI design tool for changing templates. You must enter data and give coordinates for placing objects on the template.

You can add information to existing tabbed pages or create new tabbed pages with custom fields. The fields you add correspond to data that resides on an Exchange Server property sheet.

To modify templates, you use combinations of text and boxes, called controls. Table 1 lists and defines the control types, and Screen 1 shows how four control types appear on the finished Mailbox property sheet.

When you create a new control type for a template, Exchange Server prompts you for more information. The options vary according to control type. All control types (except Page Breaks) require that you enter four attributes (X, Y, Width, and Height) to position the controls on the page. Table 2, page 10, defines these attributes.

Screen 4 shows the configuration options for the Edit control. The X and Y attributes let you size the Page Break (or tabbed page) to the dimensions you want. However, if you increase these attributes beyond the size of any current X or Y attributes, all other tabbed pages (Page Breaks) in the template inherit this new larger window. In other words, if you increase the size of one tabbed page, all other tabbed pages in the template inherit the larger dimensions. This feature ensures a consistent window size for all the tabs in the property sheet of the template.

The Field option of an Edit control typically corresponds to an attribute on the property sheet of a recipient in the Exchange Administrator program. (The Field drop-down list in Screen 4 is a partial listing of fields available.) Because field types differ by control, you see only the fields associated with that particular field type.

In the list of controls on the Templates tab you see in Screen 3, the Value column shows the text associated with Label, Page Break, Edit, and Group Box controls. An ampersand (&) in a value underlines the character immediately to the right of the ampersand on the finished page. The underlined letter signals to users that they can use the keyboard to access the data for that label, instead of using the mouse. For instance, to move between labels, type ALT + the underlined character for the label you want to move to. Ampersands are optional entries that you can add as a courtesy for keyboard enthusiasts. Screen 1 shows how the underlined characters that you create with ampersands appear on the page. The sidebar "Tips for Working with Details Templates" offers suggestions for modifying details templates efficiently.

Adding Existing Data to a Template
To illustrate how you use the controls to modify a template, let's add some existing information from the Exchange Server Mailbox property sheet to the Mailbox details template. Suppose you want to add a new tabbed page to the Mailbox template to include Employee Specific information. Before you begin, outline the information you want to include and how to display that information. You can decide, for example, whether to group related information. When you have completed this blueprint, you're ready to transfer the information to the template. To create a new tab to display information at the client regarding outgoing message size limits and mailbox storage limits, follow these steps.

  1. From Exchange Administrator, go to Site, Configuration, Addressing, Details Templates, English/USA. Double-click the Mailbox object in the right pane of the window, which Screen 2 shows.
  2. Go to the Templates tab, click New, and choose a Control type. To add a new tabbed page, create a Page Break. I called this page Employee Specific. As you add new controls to this Page Break, list them under the Page Break so they'll appear on that tab. Click Move Up or Move Down to position the controls in the list.
  3. To create a Group Box for the components you're adding, click New, choose the Group Box control, and input the four attributes. I typed the text Exchange Limit Thresholds.
  4. To create a Label, click New, choose Label, and define the four attributes. I typed Outgoing Message Size Limit (KB) in the Text box to name the Label.
  5. To create an Edit box to contain the data the Label describes, click New, Edit, and define the attributes. From the Field drop-down box, I selected Outgoing message size limit.
  6. Repeat steps 4 and 5 to create another Label and Edit box for the Mailbox Storage Limit, based on the Field drop-down box Prohibit send storage limit.

Placing controls can be tedious if you're not familiar with this technique. Through trial and error, you'll develop a feel for where to place the objects. Compare the controls' coordinates in Screen 3 with the finished page in Screen 5 to see how the controls appear on the page. You can use the Test function to view the modified template as you position new controls. When you're satisfied with the results, click Apply or OK to save the modified template.

To see the results of these changes from the client, you can go to the GAL, click a mailbox, and choose Properties. As the lower part of Screen 5 shows, you can view the message size limits and mailbox storage limits for Juli X. Nimitz.

Adding New Data to a Template
In the previous section, I added data from an existing field on an Exchange Server property sheet. You can also add new fields. For example, suppose you want to display the fields Employee ID and Employee Start Date. By default, this information isn't on the mailbox property sheet on the Exchange server, but you can add it to a template.

First, you need to define these new fields. In Exchange Administrator, go to Configuration, DS Site Configuration, then to the Custom Attributes tab. From this property sheet, you can define as many as 10 new custom fields. I added Employee ID and Employee Start Date to this window, as Screen 6 shows. After you configure these fields, you can view them immediately in Exchange Administrator on the Custom Attributes tab of a recipient's property sheet. The mail administrator can then populate each attribute for the recipient.

Next, go to a details template (in this case, the Mailbox template) and define a Label control and corresponding Edit Box control. When you're creating the Edit control, you point to the new custom attribute field (in this case, Employee ID), as Screen 4 shows. When you finish the configuration, the user sees the fields in the upper portion of the Employee Specific tab, as you see in Screen 5.

Using Templates to Extend Search Capabilities
MAPI clients can do general searches on recipients by going to Tools, Address Book, Tools, Find. You can search on fields such as Last name, Department, Office, and City. In addition, you can manually configure the Custom Attributes tab of the Search Dialog details template to enhance search capabilities on existing or new fields. Screen 7 shows an edited Search Dialog template that lets a user search on new fields, such as all employees who report directly to Renee Romulus.

Expand the Options
Exchange Server can act as a repository of not only email-specific data but also other company information. By editing the contents of details templates, you can deliver the information you want available to your users.