Composing Complex HTML Mail Messages

Jul26th2005


Outlook does not provide a command to insert tables or other complex elements into HTML messages, nor does it give you a way to edit the source of an HTML message. The View Source command that you see on the right-click context menu in an HTML message does not let you save any changes to the source back into the message. There are several ways to compose complex HTML messages, though.

How To

Outlook does not provide a command to insert tables or other complex
elements into HTML messages, nor does it give you a way to edit the
source of an HTML message. The View Source command that you
see on the right-click context menu in an HTML message does not let
you save any changes to the source back into the message. There
are several ways to compose complex HTML messages, though.

Method 1: One
approach is to create the HTML content using your favorite HTMLeditor. Save it as an .htm file, and then use one of these methods
to get it into the Outlook message:

  • Check Tools, Options, Mail Format to make sure Outlook is set
    to use HTML as its default message format. In Internet Explorer,
    browse to the HTML page that you saved as a file. Then, choose
    File | Send | Page by Email. Or,
    in Outlook itself, make sure that WordMail as your editor is
    turned off and use the Web toolbar in Outlook 2000 or the Address
    box in Outlook 2002 to navigate to the web page. Then, choose
    Actions | Send Web Page by E-mail. (Thanks to Margaret
    Blauvelt for this tip.
    )
  • Create a new HTML-format Outlook message. In Internet Explorer,
    browse to the HTML page that you saved as a file. Choose Edit |
    Select All
    , then Edit | Copy. Switch to the Outlook message and
    paste the copied material into the body of the message.
  • Create a new HTML-format Outlook message. Choose Insert
    | File
    and select the saved HTML file. At the bottom right corner of the
    Insert File dialog, click the small arrow next to the Insert
    button, and choose Insert as Text.

Method 2: Another way to create an HTML message with really rich HTML tags
is to use Microsoft Word to create the document, then choose File
|
Send To | Mail Recipient
. This adds To, Cc, and
Subject boxes to
the top of the Word window, where you can fill in the recipient
address and subject. When you send the message, Word uses HTML
format. Unfortunately, in Word 2000, it also bloats the message
with several KB of Office-specific XML formatting information.
Word 2002, on the other hand, provides a way to strip the XML.
You’ll find this Filter HTML before sending option in Word 2002
under Tools | Options | General | E-mail Options, on the General tab.

Method 3: Outlook
2002 provides yet another method: Simply use Word as your e-mail
editor (Tools | Options | Mail Format). WordMail in Office XP
is much better than in previous versions. You can use all the Word
composition tools and choose whether to send the message in plain
text, HTML or RTF format.

With
WordMail as your editor, you can also edit the HTML source directly
if you have the Web Scripting component from Office XP installed.
You must add the HTML Source command to your toolbar (View |
Toolbars | Customize
). Normally, Word does not display this
command unless you are editing an .htm file. I have tried this
method only in Office XP, but it might also work in Office 2000.

Method 4: Use code to create an Outlook MailItem object (objMsg
in the snippet below), then use

FileSystemObject methods to read the contents of a saved .htm
file:

Set fso = CreateObject(”Scripting.FileSystemObject”)

Set ts = fso.OpenTextFile(”c:\testfile.htm”, _

ForReading)

strText = ts.ReadAll

objMsg.HTMLBody = strText


Method
5:
Create a new document in Microsoft FrontPage, then use
FrontPage’s File | Send command. (We tried this in Office XP,
but not Office 2000 yet.) The resulting message will include an
extraneous two line feeds and horizontal line at the top, but you
can easily delete these. This method preserves internal bookmarks. (Thanks to
Stephen Green for this tip.
)

Be careful with your <img> tags if you use this method, because the
message always uses the exact tag from your document, even if you
have Outlook set to embed images in outgoing HTML messages.
Therefore, the <img> tags will need to point to files available on
the Internet. This, in turn, may annoy people who use dial-up
Internet connections, since Outlook will try to connect to try to
display the images when the recipient opens or previews the message.

Stationery

Notes

Adding an internal hyperlink in an Outlook message is tricky.
If you create the message with the Insert | File method,
Outlook adds “outbind://32/” in front of the bookmark link, making
it unusable. If you use the File | Send | Page by Email
method, Outlook adds a <BASE> tag to the header, making all the
internal hyperlinks point back to the original web page, again
making the link useless. Using Word seems reliable, though. Either start with a Word
document, then use File | Send To | Mail Recipient, or, in
Outlook 2002, just use WordMail to create the HTML message directly.
Another workaround is to create the page and save it as stationery,
then use that stationery to create the message. Method
#5
above, using FrontPage, also works.

Outlook has a setting that controls whether images referred to in
<img> tags are sent with your message — Tools | Options | Mail
Format | Internet Format
.


In
some Outlook configurations, printing from HTML messages does not
include the names of any file attachments in the printout. One
solution is the
Print on
Demand
utility, which adds two new buttons to print the message
with the attachment names appended and to print just the
attachments.

More Information

Selby Jennings Corporate Branding

Selby Jennings Corporate Branding

Client: Selby Jennings
Agency: New Brand Media
Art Direction: Jonathan Porter
Project Scope: Brand Identity Design, Web Design & Development

View more Selby Jennings Branding

HP Invent

HPInvent-WebDesign.jpg

Client: HP Invent
Agency: Agilisys
Art Direction: Jonathan Porter
Project Scope: Web Design and Usability
.