More Outlook Resource Sites

Microsoft Developer Network (MSDN)

FAQs and other general resources

Using Outlook custom forms over the Internet - Not!

In short, don't do it. Even thinking about trying to use custom Outlook message forms to send items over the Internet is probably a waste of your valuable time. The prerequisites for getting custom forms to work over the Internet in current Outlook versions are so stringent that your chances of success are very, very slim.

If You Insist

If you insist, despite the warning, these are the prerequisites that must be met:

  • All users must be using Outlook.
  • All users must have access to the published form definition. As a practical matter, that means the form must be published to each user's Personal Forms library or, in an Exchange environment, to the Organizational forms library, with each published instance of the form using the same message class, such as IPM.Note.MyForm. Furthermore, the Send form definition with item box on the (Properties) page of the form must not be checked.
  • All the mail servers involved must allow rich-text content to pass. In some Exchange environments, outgoing RTF content is stripped by the server.

If all these conditions are not met, the other user will see your custom form item in the standard Outlook form, not your custom form, and will have no access to any custom properties or VBScript code behind the form.

It can get even worse: If you create a message using a custom form and send it to a non-Outlook recipient, that person may get an annoying Winmail.dat file as part of the message and wonder why they can't open it. At worst, they won't even be able to see any attachments that you included with the message.

What about Templates?

The above caveats apply to any Outlook form that is designed to display custom fields or run code for the person on the receiving end. Those features require a published custom form. You do not, however, need a published custom form if you just want to use some boilerplate text to make it easy to send certain messages on a regular basis. In such scenarios, do not publish a custom message form. Instead, create your boilerplate message, then save it to the file system as an Outlook template .oft file. To create a new message from the .oft template, just double-click it.

If you are using Outlook 2003 with Word as your email editor, you will need to go to Tools | Options | Message Format and turn off Word as the email editor before you create the boilerplate message. If you don't do that first, you will not be able to save it as an .oft file.

A Marginal Workaround

As a workaround for the problems related to using a custom message form over the Internet, I used to recommend using the Item_Send event handler on a custom message form to create and send a completely new message with the standard form, inserting data from custom properties on the original custom form message into the Body or HTMLBody property. However, because the Item.Close method is broken in versions of Outlook 2007 before SP1 and in current versions of Outlook 2003 (unless you get the right hotfix from Microsoft), you probably would have to leave the original custom message form open, which would confuse many users. Therefore, I cannot wholeheartedly recommend this solution.

More Information