More Outlook Resource Sites

Microsoft Developer Network (MSDN)

FAQs and other general resources

Customizing Outlook Message Forms

Before you start designing custom message forms, you should find out whether you meet the prerequisites and then consider the quirks and limitations to determine if a custom message form is truly the solution for your particular scenario.

Message Forms vs. Templates

Let's first distinguish between a template that contains boilerplate text that you use to create messages that all look alike and a custom form that contains custom fields and page layouts. A template can be created simply by opening a new message, adding text, recipients, attachments, and subject, then saving it as an .oft file. To use the template to create new messages, you simply double-click it.

A custom form, on the other hand, is created in the Outlook form designer (Tools | Forms | Design a Form) and may contain custom properties, custom page layouts, and VBScript code behind the form. Saving such a form as an .oft files is an excellent way to keep a backup copy, but you cannot put such an .oft file into production, because the code won't run and the custom layouts and properties won't be visible to recipients. To open a form backup .oft file to make design changes, you must use the Tools | Forms | Choose Form command.

Prerequisites

Any form that needs to transmit custom property data to a recipient or run code for a recipient must be published in a location where the recipient can retrieve the custom form definition. That means either the Organizational Forms library on the Exchange server or the Personal Forms library of every sender and recipient. Publishing to a folder in the Public Folders hierarchy does not meet this requirement.

As a practical matter, this means that you cannot use an Outlook message form to gather information from people outside your organization.

Tips

Always turn off your automatic signature before beginning a message form design session. If you don't, your signature will become part of the custom form's message body.

To remove an unwanted signature from the message body of a custom form from which you have removed the message body control:

  1. Open the form in design mode.
  2. Drag the Message field from the Field Chooser to any custom page.
  3. Run the form.
  4. Delete the signature.
  5. Use the Design This Form command to open the form again in design mode. (If that command isn't available, either publish the form or save it as an .oft file, then open the published form or .oft file with the Design a Form command.)
  6. Remove the message body control you added in Step 2.
  7. Increment the version number on the (Properties) page, and republish the form.

If you don't want users to include signatures on custom form messages, a registry change can suppress signatures; see:

Quirks

Message forms default to separate layouts for composing and reading. Many people find their first message form doesn't look right when they receive an item created with it. That's simply because they forgot to click the Edit Read Page button and customize the Read layout!

On items created with customized message forms, the icon does not change to an open envelope after the user opens the message or marks it as read. However, unread messages will still show as bold in a folder view, regardless of what form they use. This is a user education issue as much as anything else. If you need custom icons, the solution may be to use a form region (available starting in Outlook 2007).

The View | Bcc command is not available on the menu for custom forms. If you included a To button on the form, users can click that if they need to add a Bcc recipient. You can also explicitly add a Bcc field to your page design.

Custom message forms do not display the "InfoBar" that tells when a message was forwarded or replied to. See OL2002 Information Bar Does Not Display on Custom Mail Form.

If you forward an item created with a custom form, the resulting message uses the same custom form, even if the Forward action on the (Actions) tab lists IPM.Note as the form to be used. In order to avoid one-offing, you should set the form for the Forward action to the same message class as your custom form. If you want the user to reply with the same form (or a special reply form), the form must meet the publication prerequisite above and be set as on the (Actions) page as the form for the Reply action.

If you create a message programmatically, the message always defaults to saving in the Drafts folder, even if you use the Items.Add method to create the item in a specific folder. (See To add a toolbar button to launch an Outlook 2000 form for sample code.) If you don't need to send the message item (see Limitations below) but want the unsent item to appear in another folder, save it and then move it.

A published message form does not retain any value you put in the From field, although a form saved as an .oft template file does. A possible workaround is to use this code in your form to set the From value. (Note that this is not the same as designating a sending account for the item, which is not possible in custom form code.)

Limitations

If you want the user to be able to attach files, you must leave the message body control on the form.  

Only one message body control can be used on a form. If you have the message body control on two different pages, users will get an annoying warning message. There is no other built-in control for providing users with a place to enter formatted -text.

You cannot make the message form the default for a folder. A workaround is to use the form launcher post form as the folder's default and have the launcher launch the message form. See Quirks above for a related quirk about saving messages in a specific folder.

I have not figured out any way in message form code to send the message and save it outside the user's default information store, except by putting a public folder's address in the Cc or Bcc field. (If you want to save to a folder in the default store, you can set the SaveSentMessageFolder property.) The workaround is to use a VBA/VB event handler to monitor the Sent Items folder for new items with the MAPIFolder.Items.AddItem event.

Microsoft says you shouldn't expect security features like digital signatures to work with custom forms. See OL: Do Not Use Message Security Features with Custom Forms.

Samples

AddHeader3 Form

Sample that demonstrates how can you add an X-header in your outgoing Internet messages using CDO 1.21.

Bulk Reply Form

Creates a single message in reply to all messages in a particular folder

Internet Headers Sample Form

Sample form by Outlook MVP Ken Slovak that demonstrates how to use CDO to retrieve the Internet headers of a received message

Routed Message Form

Demonstrates how to set up a message to route to several recipients.

Survey Form

Generic form to conduct surveys using different types of questions, returning responses in Q&A and comma-delimited format.

Using Microsoft Outlook to Schedule Report Transmissions

A message form that sends itself, ideal for scheduling repetitive transmissions

Microsoft Sample Applications

More sample message forms, from Microsoft