Troubleshooting Out of Office
Quite often in the public Exchange newsgroups or other mailing lists, there are posts from frustrated Exchange administrators who cannot get their users’ Out of Office messages sent externally from Exchange. The typical solution here is to recognize that Exchange has a setting to allow the administrator to decide whether Out of Office messages are indeed sent externally from the Exchange organization. This is usually a simple fix. However, what if the Out of Office messages aren’t sent to users within the Exchange organization? That should happen automatically. In this article, we’ll look at two tools that can be used to help troubleshoot the non-sending of Out of Office messages. However, before we get onto the use of tools to check our Out of Office settings, it can be useful to try two simple procedures first; both of these procedures simply involve the use of the Outlook and/or Outlook Web Access (OWA) clients.
Check The Settings
The first check we can make is to try setting and resetting the Out of Office message in both Outlook and OWA to make sure that the setting is definitely in place. To do this in Outlook and OWA is really easy and I’m quite sure you know how, but in case there are any new Exchange administrators reading this article, I’ll briefly cover the steps for article completeness:
- In Outlook, go to the Tools menu and choose Out of Office Assistant. This will bring up the Out of Office Assistant window as shown in Figure 1. Set the I am currently In the Office selection and then click OK. Next repeat the process of bringing up the Out of Office Assistant window but this time choose the I am currently Out of the Office selection and then click OK.
- In OWA you can do the same by clicking Options and then Out of Office Assistant to bring up the Out of Office Assistant settings page. This is shown in Figure 2. Note that Figure 2 is based on OWA running on Exchange 2007.
Figure 1: Out of Office Assistant Window
Figure 2: OWA Out of Office Assistant Settings
Now you can test and re-test to make sure that Out of Office is indeed not working correctly. If this still proves to be the case, you can move on to the next step.
Clean The Rules
It’s possible to run the Outlook client with various startup switches that can be used to troubleshoot various issues. These startup switches are documented on the Microsoft Office site here. The particular switch that you are interested in is the /cleanrules switch so it’s simply a case of running the outlook.exe program with the /cleanrules switch as shown in Figure 3. However, before you do that, remember to export your inbox rules via the Export Rules button found within the Options section of the main Rules and Alerts window.
Figure 3: Running Outlook.exe /cleanrules
If you’ve done this and things still don’t work, it’s time to move forward with a couple of useful tools.
The next step is to use a tool called MFCMAPI to confirm whether the Out of Office message is set or not. It can be useful to use something other than Outlook or OWA to verify this. MFCMAPI is a tool to directly view and modify the MAPI store and can be downloaded from the Microsoft downloads site here. This tool is supported on Windows 2000 SP4, Windows 2003 or Windows XP. I’m going to be running it on a Windows 2003 server which also has Outlook 2003 installed. Running MFCMAPI is really easy – here’s what to do:
- First run the MFCMapi.exe file which will launch the main MFCMapi window as well as an About MFCMAPI window which you can close straight away via the OK button.
- Back at the MFCMapi window, click the Session menu option followed by the Logon and Display Store Table option. The familiar Outlook profile window will now be presented and here you’ll obviously want to choose the relevant profile you are working with.
- The connection should now be made and you’ll see the user connection in the main window. In Figure 4 below, we’ve connected to User 3’s mailbox.
Figure 4: Initial Mailbox Connection
- Select the mailbox profile from the list displayed. In other words, in Figure 4 above we’d select the line that contains Mailbox – User3 in the Display Name column. Once you’ve done this the lower pane should be populated with information.
- In the lower pane, scroll down until you find the entry that has a name property of PR_OOF_STATE. Look in the Value column, where you should see either the letter T for true or F for false. An example is shown below in Figure 5.
Figure 5: PR_OOF_STATE Property
- We can therefore see from Figure 5 that MFCMAPI confirms that Out of Office is set for User 3, since the value of PR_OOF_STATE is true.
That wasn’t terribly complicated but the next action that you can take starts to get much more complicated as we now move on to use a utility called MDBVU32. This utility can be downloaded from the Microsoft site here. There are a total of 5 files associated with MDBVU32, namely MDBVU32.EXE, the main application files, as well as 4 DLL files called PROPVU32.DLL, STATVU32.DLL, TBLVU32.DLL and XVPORT.DLL. MDBVU32 can be used to delete the Out of Office rules from the mailbox so that they can then be re-created by the user, based on the assumption that the rules are corrupted in some way. Here’s what to do.
- Run MDBVU32.EXE.
- The MDB Viewer Test Application window will open and on top of that the MAPILogonEx(MAPI_LOGON_UI) window will be displayed. In the latter window, select the MAPI_EXPLICIT_PROFILE option and choose OK. This is shown in Figure 6.
Figure 6: MAPI_EXPLICIT_PROFILE Option
- The Choose Profile window is now displayed. Choose the relevant MAPI profile that you’re working with. In my case, I’ll choose the profile for User 3’s mailbox.
- The MDB Viewer Test Application window will now be accessible. Click the MDB menu option and choose OpenMessageStore. The Select Message Store to Open window will be displayed as shown in Figure 7.
Figure 7: Select Message Store to Open Window
- Ensure that the mailbox you wish to work with is selected and then click the Open button. The Select Message Store to Open window then disappears.
- Back at the main MDB Viewer window, click the MDB menu option and then the Open Root Folder option. The MAPI_FOLDER – Root window appears as shown in Figure 8.
Figure 8: MAPI_FOLDER – Root Window
- In the top-left corner of the MAPI_FOLDER – Root window, the child folders are displayed. Double-click the Top of Information Store child folder and the actual mailbox folders should now be displayed within the child folders section. This is shown in Figure 9.
Figure 9: Showing the Mailbox Child Folders
- Double-click the Inbox folder. The Messages in Folder area should now show the subject lines of the messages in the inbox folder of this mailbox. For example, in Figure 10 below, you can see that there are five messages in the inbox folder. However, notice the area titled Associated Messages in Fld in the top-right corner of the window – this is what we are interested in at this time.
Figure 10: Showing the Inbox Messages
- Within the Associated Messages in Fld area of the screen you will see several messages that comprise things like Outlook rules that the user has created as well as the Out of Office settings. Specifically, it’s the messages that begin with cb: that we need to examine. There are two messages that need to be removed, one that contains the actual Out Of Office rule and the other that contains the Out of Office template.
- To identify these messages, double-click each “cb:” message in turn which will bring up a new MAPI_MESSAGE window. In this window, examine the contents of the Message Properties area at the bottom of the screen. For example, look at Figures 11 and 12 below. Here you can see that the second of the cb: messages that I’ve examined has a PR_BODY property corresponding to the user’s actual Out of Office message, as well as a PR_MESSAGE_CLASS property of IPM.Note.Rules.Oof.Template.Microsoft.
Figure 11: PR_BODY Property
Figure 12: PR_MESSAGE_CLASS Property
- In Figure 13 below, you can see that the third of the cb: messages that I’ve examined has a message property 0X65EB of MSFT:TDX OOF Rules. These two cb: messages are the messages that we need to remove. Remember, the second of the cb: messages that you are interested in has the 0X65EB property.
Figure 13: 0X65EB Property
- Now that we’ve identified the correct cb: messages, we can remove them. First, close the MAPI_MESSAGE window via the Close button, so that you’re back to the MAPI_FOLDER window as shown in Figure 14. Next, select both cb: messages to be removed by holding down the control key and selecting each message in turn. In between the Associated Messages in Fld and Folder Properties areas of this window, you’ll see a drop-down selection box under the title of Operations available(Select operation, then push Call Function Button). In this drop-down box, select the lpFld-> DeleteMessages() option as shown in Figure 14.
Figure 14: Deleting the Messages
- Click the Call Function… button which will bring up the window shown in Figure 15. Just click the OK button to complete the operation.
Figure 15: Call Function Resulting Window
- The Out of Office messages should now be removed and you should be back at the MAPI_FOLDER window as shown in Figure 16. Note that there is now only a single cb: message remaining which in this case is a normal Outlook rule.
Figure 16: MAPI_FOLDER Window After Messages Removed
- You can now exit MDBVU32 by clicking Close at the next three windows displayed, which should bring you back to the main MDBVU32 window. Here you can click the MDB menu option, followed by the Store Logoff option. In the resulting lpMDB-> StoreLogoff() window, just click OK then OK again at the window informing you that logoff is complete. You can then click the Session menu option followed by the Session Logoff option. Finally, exit the MDBVU32 utility.
Of course, the user will now need to reset their Out of Office rule for it to be effective again. It is likely that after this operation, the Out of Office setting will still be enabled for this user, but the actual message contents will be blank.
It can be frustrating to both users and administrators when simple operations such as the Out Of Office setting stop working. Resetting the Out Of Office setting using tools such as MDBVU32 can appear quite daunting at first and so hopefully in this article I’ve shown that it’s not quite as bad as you’d first think.