| < Day Day Up > |
|
Application developers found the first generation of OWA to be relatively straightforward to customize in terms of appearance and even to add a certain degree of functionality, because Microsoft provided a large portion of the source code in the form of active pages, which you can easily change with even a simple text editor. Ease of access and customization brings its own problems, the most obvious being that you had to reapply customizations on a server after you installed each new version or service pack for Exchange.
The current OWA architecture is quite different. OWA now uses a much higher percentage of compiled code and the source is not available outside Microsoft, which would prefer that you do not attempt to customize OWA except by using approved methods. The implementation of the URL namespace means that you can insert references to Exchange data inside any Web page, and, if required, you can use OWA command qualifiers to refine the URLs. You can now specify a specific view, sort items in a certain order, or start off a calendar at a set date. For example, the following URL displays my calendar in monthly view starting at March 1, 2003:
http://server_name/exchange/redmond/ calendar?View=Monthly&Date=20030301
Another example:
http://server_name/exchange/Redmond/ calendar?Cmd=New&Type=Appointment
This URL instructs Exchange to go to the calendar folder in Redmond's mailbox and execute the "New" command to create a new item of type "Appointment." Table 5.4 lists a sample of the available commands. The set of commands expands as Microsoft adds new features to OWA, so check the Microsoft Web site for details on the current set.
Using the Exchange 2003 version of OWA, you can also create a message addressed to a specific user by using the following URL format:
http://server-name/exchange/username/drafts/ ?cmd=new&mailtoaddr=user@domain.com
Exchange 2003 also allows you to look at the contents of the deleted items cache for any folder by using a command line such as:
http://server-name/exchange/username/folder-name/ ?cmd=showdeleted
Figure 5.22 shows the effect.
Figure 5.22: Viewing the deleted items cache for a folder.
Command-line qualifiers provide a basic level of customization. If you want to change the look and feel of OWA by applying different colors or styles, hiding the command button, or revealing or hiding folders, you have to change OWA source code components. These include the .htc, .js, and .xsl files held in the exchsrvr\exchweb folder. Table 5.5 lists the various components that interact to build the OWA user interface and the directories where you can find the files.
URL Suffix | Function |
---|---|
Cmd=Navbar | Display the navigation bar in a frame |
Cmd=Contents | Display the contents panel in a frame |
Cmd=New | Create a new item (of a specified type) |
Cmd=Options | Display the options panel (set out of office notification, etc.) |
Cmd=Open | Open an item for reading |
Cmd=Edit | Open and edit an item |
Cmd=Reply | Reply to the sender of the current message |
Cmd=ReplyAll | Reply to everyone in the header of the current message |
Cmd=Forward | Forward the current message |
Cmd=Delete | Delete the current item |
Cmd=Options | Display the OWA options form |
Cmd=ShowDeleted | Show deleted Items |
Type=Message | Set the item type to be a message |
Type=Post | Set the item type to be a post form |
Type=Appointment | Set the item type to be an appointment |
Part=1 | Generates simplified views for inclusion in Web parts |
Page=x | Display page x (of a set of pages)-for example, page 3 of the Inbox folder |
View=x | Use a specified Outlook view-for example, View=Daily will display the Daily view in the calendar |
Sort=x | Sort by the specified column-for example, Sort=Subject |
Date=x | Display the specified date in the calendar. Dates are always passed in the YYYYMMDD format-for example, 20030317 is March 17, 2003. |
Microsoft does not supply a code management system to isolate and identify the changes you make to OWA files, so always work on a development system and be sure to note the changes that you make to different files to create customized code. You will have to test and then reapply changes after you install a service pack or hot fix, and you may find that the Exchange developers have altered the way that OWA works and broken one of your customizations after Microsoft produces a new service pack or hot fix. Additionally, since OWA supports well over 20 languages, you may have to make changes in multiple places to accommodate different languages. With no code management system in place, it is inevitable that reinstallations will overwrite customizations, and this is the basic reason why you are on your own if you decide to change the OWA files. The following customization changes can be made:
Directory | Contains |
---|---|
Exchsrvr\bin | Wmtemplates.dll-responsible for defining the default templates used to render OWA. This component cannot be customized. |
Exchsrvr\exchweb\bin | Exwform.dll-handles custom form processing |
Exchsrvr\exchweb\cats | Localized (language-specific) Exchange multimedia control and associated .cab files |
Exchsrvr\exchweb\controls | Holds the .css (cascading style sheets), html files, and client Jscript libraries. For example, OWA uses calendarprint.css to print calendar views. |
Exchsrvr\exchweb\help | Localized versions of the OWA help files |
Exchsrvr\exchweb\img | OWA image files. For example, navbar.img contains the images used in the navigation bar. |
Exchsrvr\exchweb\views | XSL style sheet files used to build the standard OWA folder views. For example, v_cal.xsl is used to generate client-side views of calendar data. |
Show specific Exchange components (such as the calendar) in a browser frame
Modify the navigation bar to add or remove options
Modify the folder tree view control to remove public folders
Hide toolbars from folder views
Modify the colors used with OWA style sheets
Change the icons used by OWA
Add new forms for use with OWA
Change the XSL style sheets used for client-side view generation
Logoff customization
This list is not exhaustive and is likely to change as Exchange evolves. However, customizing OWA is a double-edged sword. You may accomplish your goal, but you will create extra work in the end to maintain and reapply customizations after service packs and other upgrades.
You can customize the appearance of OWA 2003 through themes. OWA provides a set of five default color schemes (blue, olive green, silver, burgundy, and dark blue) for users to select from, but programmers can customize the CSS style sheet to define their own color scheme and the image files used in the OWA interface and so build their own theme. For example, you can combine a company's preferred color scheme and logos to generate a "house style" for OWA. Figure 5.23 demonstrates an "hp-branded" version of OWA, including the new mail notification pop-up. This feature is likely to be popular with companies as well as ASPs, who can now generate "branded" versions of OWA. However, the branding only works for mailbox access, since OWA uses a different interface for public folders.
Figure 5.23: Branded OWA.
Application Service Providers often want to divide OWA functionality to control the components available to users. For example, users who pay for calendar access can see the calendar, while those who only want to use email cannot. You might also decide to limit client functionality to reduce the load on the server. Exchange 2000 SP2 onward allows administrators to segment OWA functionality on a server or individual user basis. You can control the most important areas of OWA functionality as follows:
Messaging: If enabled, users can send and read email messages and access all mailbox folders.
Calendar: If enabled, users see their Calendar folder and if Messaging is enabled, they can create and accept meeting requests.
Contacts: When enabled, users can see the Contacts folder and create and use contacts (including to validate addresses on messages).
Tasks: When enabled, users can see their Tasks folder.
Journal: When enabled, users can see their Journal folder.
Notes: When enabled, users can see their Notes folder.
Public folders: If enabled, users can access public folders and OWA displays the links to public folders. If not, OWA shows no evidence that public folders exist.
Calendar reminders: If enabled, calendar meeting reminders are signaled; otherwise, they are suppressed.
New mail notifications: If enabled, OWA signals new messages with a notification pop-up; otherwise, notifications are suppressed.
The interface: If enabled, clients are able to use the OWA rich interface; otherwise, the reach interface is used. Note that the rich interface requires Internet Explorer 5.* or later.
You control segmentation by setting bits in a bit mask. Each feature is controlled by a separate bit value, and when that bit is set to 1, the feature is enabled. Conversely, you disable the feature if the bit is set to 0. Values are set in a bit mask using increasing powers of two, so you enable the desired set of features by totaling the unique value for each feature and using the cumulative total. Table 5.6 lists the values for the available features. For example, to enable Messaging, Calendaring, and their notifications while using the rich OWA interface, the calculation is:
1 + 2 + 128 + 256 + 512 = 899
OWA Feature | Value | Exchange 2000 | Exchange 2003 |
---|---|---|---|
Messaging | 1 (1 hex) | X | X |
Calendar | 2 (2 hex) | X | X |
Contacts | 4 (4 hex) | X | X |
Tasks | 8 (8 hex) | X | X |
Journal | 16 (10 hex) | X | X |
Notes | 32 (20 hex) | X | X |
Public folders | 64 (40 hex) | X | X |
Calendar reminders | 128 (80 hex) | X | X |
New mail notifications | 256 (100 hex) | X | X |
Rich user interface | 512 (200 hex) | X | X |
Spell check | 1,024 (400 hex) | - | X |
S/MIME secure email | 2,048 (800 hex) | - | X |
Search folders | 4,096 (1,000 hex) | - | X |
Auto-signature | 8,192 (2,000 hex) | - | X |
Rules | 16,384 (4,000 hex) | - | X |
Themes | 32,768 (8,000 hex) | - | X |
Junk mail filters | 65,536 (10,000 hex) | - | X |
All available functionality | FFFFFFF (hex) | - | X |
You apply OWA segmentation to a complete server by adding a new DWORD value called DefaultMailboxFolderSet to the system registry under the HKLM\System\CurrentControlSet\Services\MSExchangeWeb\ OWA key. Input the calculated value in hexadecimal, then stop and restart the Information Store service and the World Wide Web service. Test that the desired change is effective by connecting to the server with OWA. Note that the browser controls some degree of segmentation. For example, it does not matter if you allow people to have full access to all features if they run a down-level browser. Along the same lines, some dependencies exist between different functions. For example, messaging is a fundamental component for calendaring and you will not be able to send out meeting notifications without it, so there is not much point in enabling calendaring without messaging, and, indeed, OWA 2003 will not let you! In addition, if you do not explicitly specify the rich client interface, you will see the reach interface, which in turn means that you cannot use functionality that the reach interface does not support.
You can also apply feature segmentation at an individual user account level or, more probably, for a selected group of user accounts. The user setting overrides the server setting, which is a useful feature. However, for
Exchange 2000 SP2 onward, the big problem is that you need to update the AD schema to add the necessary attribute (msExchMailboxFolderSet) before you can apply segmentation to an account, and you input the necessary bit mask by selecting the account and updating its attribute with ADSIEDIT. The new attribute holds a list of folders that a user is able to access. This is not a major issue if you apply schema updates at the start of a deployment, but adding an attribute that the AD must then publish to every GC server in the forest will cause a complete refresh of GC data, something that you must plan carefully if your forest is already in full production. You do not have to worry about the schema update for Exchange 2003 if you use Windows 2003 domain controllers, since the Windows 2003 version of the schema includes this change.
Function segmentation works only for OWA and does not affect the options available to other clients.
| < Day Day Up > |
|