Why HTML in E-Mail is a Bad Idea
Note: This page was originally written in 1998, maintained actively through 2004, and was sporadically updated through 2006. The author's feelings on HTML in email have largely changed since then (I no longer mind it much, and even send it myself in some contexts). This page is no longer actively updated.
Have a comment on the practice of using HTML (rich text / formatted) email? A discussion topic for this page is available here.
You may have been directed to this page because a message you sent was composed in HTML. This may have happened without you even knowing it, because Microsoft Outlook is configured to send HTML e-mail to all recipients by default. I believe that HTML e-mail is one of the uglier things Microsoft has wrought upon the Internet, and this page exists to explain some of the reasons why I feel that way. It's not that I don't think there are some nice things about HTML e-mail, just that I believe the reasons below far outweigh any benefits it provides.If you take away only one thing from this page, let it be this: When you send HTML email, you have no guarantee that your message will be A) readable at all or B) visually legible to the recipient. With plain text email, you always have that guarantee, no matter what mail client the recipient is using.
Note: I have received a highly detailed, point-by-point rebuttal to the points made on this page and, in the interest of fairly presenting both sides of the issue, have posted it here.
Take the poll: For some people, feelings about HTML-formatted email have changed since this document was first written in the late 90s. Use this poll to let us know whether you still dislike HTML in email, or have grown to accept or even like it.
Table of Contents
- The Problem(s) with HTML E-Mail
- How Your Mail Might Look to Others
- How To Fix the Problem
HTML in e-mail is a bad idea ...
- Because HTML is for making web pages and plain text is for simple communications. If you're looking to create a web page or write a book, fine. But e-mail messages are not web pages or books. e-mail was designed for simple messaging. Anything else detracts, rather than adds to its core functionality. As Andy Roony said, "E-mail is simple. Like the pencil, it just works." Well, e-mail is not simple -- and it doesn't always work -- when HTML is involved.
- Because it encourages people to express themselves with fancy formatting rather than with carefully chosen words.
- Because it introduces compatibility problems with text-based clients like the hundreds of thousands of Pine users out there (see screenshot below). Update: Modern versions of pine and other text-based clients are able to display the plain-text alternate version just fine, so this is less of a problem than it used to be.
- SpamAssassin and many other spam filters weight the "spamminess" of incoming messages on many factors, and HTML formatting is one of them. An innocent email that would normally not trigger spam filters may get a higher spamminess ranking if HTML formatting is involved.
- Because it introduces accessibility problems. When you write in plain text, the receiving mail client renders the text in whatever font the reader chooses. When you format email with HTML, the sender controls the formatting. But this is a trap: You only think your message will render the same way to the viewer as it appears to the sender. In reality, the receiver can end up squinting because the font looks so tiny, or vice versa. HTML is not rendered the same way from one viewing client to the next - all guarantee of accessiblity goes out the window. This is especially problematic for visually impaired persons.
- Because it can introduce security issues and trojan horses -- it's a gateway to danger as any Outlook user can tell you. HTML can include any number of scripts, dangerous links, controls, etc.
- Because it takes a nice, short two-line e-mail body and makes it 15 lines long (see screenshot below).
- Because it more than doubles the size of e-mails as clients "handle" the issue by sending out plain text and HTML versions of the same e-mail. This of course also means increased bandwidth consumption, which -- take note all you bean pushers and IT professionals -- ultimately drives up costs.
- Because it makes email software larger, slower, and more complicated, greatly increasing the chances of crashes and compatibility problems, as well as wasting memory, hard disk space, and CPU cycles. Think about it: to process HTML email, you're basically putting a web browser inside your email program! (To give you an idea of how strongly some people feel about this, the person who contributed this also says "There are many who think it's okay just turn off the HTML option, but for the above reason, I refuse to use an email program that even has it as an option. I still use Claris Emailer and will never switch to anything else (I have an old Mac at home that I use for nothing but email, so I don't have to worry about ever being forced to upgrade to a "better" email client)."
- Because people spend more time choosing a font that the recipient probably doesn't even have on their system than in choosing their words carefully.
- Because it wreaks havoc with any mailing list that sends out digests.
- Because it forces programmers writing e-mail clients to choose between supporting it and implementing features that will actually help handle e-mail.
- Because it violates the e-mail standards and protocols unnecessarily. Most users never use any of the "advanced" options and those who do typically go overboard -- usually spammers who use HTML's fancy styles as a way to garner attention.
- The only possible reasonable purposes for HTML e-mail are simple text styles such as bold and italics which can be expressed _in_ *other* WAYS that are /universally/ readable. :-)
- Because it encourages companies to think it's OK to do things like include code that will let them know if you're reading their e-mail. This actually happened to a friend, who received an e-mail from infobeat asking why he wasn't reading their daily news e-mails. I consider that a gross violation of privacy.
- Because its presence, and the public's complicity with it, encourages the abuse of advertising bloat in your inbox. Knowing they can do eye-catching banner ads, spammers and corporations (such as Barnes and Noble) will fill half a page with ads for this and that, creating visual and mental clutter we'd all be better off without. We get enough of that on the web - we don't need it in our inboxes as well. Matt Pervy adds this observation:
Some would say that advertising is heavily reliant on visual elements to be successful. In most cases, this is true; but not in the computer industry. A picture of a CD-RW drive unit tells us absolutely nothing about the product, other than the fact that it exists. TEXT tells us that it burns CDR at 16X, burns CDRW at 10X, and reads at 40X. A picture of a CPU is use-less in advertising. TEXT tells us that it's an Intel Pentium 4 processor, running at 1.x Giga-Hertz, capable of blasting the etc, etc.
Kari Chisholm (Lewis and Clark College) contributes:
America Online strips and compresses attachments sent to their users. HTML-mail is often considered an "attachment" to a regular email, and as such, may never find its destination @aol.com. This is especially troublesome for folks using AOL 5.0 and earlier - the mail client wasn't fully MIME-compliant. See this FAQ Item for more information.
Corroboration: Other Articles on Similar Topics
Think I'm a lone wolf on this topic? Check out these mainstream publications and vendors with similar and related warnings on HTML email:
Wired News posted an interesting piece Friends Don't Email Friends HTML, which is worth reading.
The Register has an article on how the fact you can't disable receiving of HTML Email may have something to do with Microsoft being in the pocket of the spam lobby.
Comprehensive list of reasons why HTML and MIME-based mail is a poor choice in Configuring Mail Clients to Send Plain ASCII Text .
Or try Researchers reveal new Explorer, Outlook security flaw at ComputerWorld.
Even the Apple Knowledge Base has an article warning users about the dangers of HTML email.
How Your Mail Might Look to Others
So you spend all of that time creating a perfect layout for your message, hit Send, and assume that the recipient will see it in the same way. Bad assumption. There are millions of people using mail clients that are not HTML-compatible. No, you can't just say "Well, they should upgrade then." It's not as simple as that. People use these clients because they prefer them, not because they're dumb, or because they don't have the latest technology. People use them because they have features they prefer over Outlook etc., or because they can operate them via telnet sessions from any machine in the world, or because they prefer the anti-virus security they get by staying away from HTML e-mail.
Here's an example of how your carefully composed HTML e-mail might look to a user of just one of the many clients out there that don't handle HTML e-mail (this particular example shows BeatWare Mail-It for BeOS, but this is just an example).
Notice how much space has been used just writing out the HTML header without even getting to the message body. HTML e-mail wastes space! Here's another shot, this time of your fancy-schmancy HTML email as viewed through pine, which is still an immensely popular text-mode email client because it's lightning fast, powerful, and can be operated from anywhere.
As you can see, your message is almost completely unreadable. Note the sender's lie, "We strongly oppose the use of unsolicited email..." Yeah, right.
How To Fix the ProblemIf you receive HTML email from people, feel free to direct them to this page. If you are on mailing lists or newsletters that send HTML email, request, no, demand that they offer an option to receive a plain text version instead of the formatted version. Most HTML-capable e-mail clients will let you disable HTML e-mail globally (for all messages) or on a recipient-by-recipient basics. For the reasons above, I recommend that everyone disable this feature globally.
Here's how to do it in MS Outlook and Outlook Express:
Pull down Tools | Options. Select the Send tab. Look at the section labeled "Mail Sending Format." Change the radio button from "HTML" to "Plain Text."
Al Adcock (email@example.com) adds:
For Outlook 2000, it's:
Tools | Options | Click on the Mail format tab | select Plain Text from the Pulldown box, then click OK!
Here's how to do it in Hotmail
You can ensure that you're not sending out HTML email from Hotmail accounts by not using the "Rich Text" option in the message compose window. If you dig around in the options, I believe there's a setting that lets you turn off the Rich Text bar for all messages.
Xeno (firstname.lastname@example.org) adds:
Here's how to do it in Eudora (all types), version 4 and up:
To strip HTML from a message you are currently viewing in Eudora:
- From the Tools menu, choose Options.
- In the Category list, choose Styled Text.
- Choose the "Send plain text only" radio button.
- Clear the "Send the signature with styles" check box.
- Clear the "Ask me each time" check box.
Alternately, the Select All and Clear Formatting commands can be added to the tool bar to simplify this task.
- With the cursor somewhere on the message body, press Ctrl-A to select the entire message text, or choose Select All from the Edit menu.
- From the Edit menu, point to the Text cascading menu, and choose Clear Formatting.
Saint John (StJ at mac dot com) adds:
Something that can be done in Eudora to cut down on the annoyance of others' HTML is to uncheck all of the codes in Special:Settings...:Styled Text. There's a section at the bottom of that panel, "When receiving styles, pay attention to"; unchecking everything makes HTML mail look like plaintext.
Here's how to do it in Netscape Communicator:
- Click Edit | Preferences
- Click "Mail & Newsgroups" (click the "+" to expand)
- Click Formatting
- Select "Use the plain text editor to compose messages"
Here's how to do it in Apple's Mail.app:
You can also disable the display of HTML email by going to the Viewing icon and deselecting "Download all images, animations and other HTML attachments."
- Pull down Mail | Preferences
- Select "Composing" in the top icon row
- Change "Default message format" to "Plain Text"
- Close Preference panel.
Thanks to Lorin Meier (Lorin dot Meier at loherangrin dot de) for this.
Chan-Ho Suh adds important information to the above:
I'm afraid that unchecking the HTML images, etc. button in Apple Mail viewing preferences does not stop the display of HTML emails. Rather, it disables images and other embedded objects. You will still see the text portion of the HTML email.
Not only is this highly annoying for reasons you mentioned, but it looks really ugly, especially if, as is frequently done nowadays, certain key parts of the message are contained in the images.
Luckily, there is a way to force Apple Mail to choose a plain text alternative, if available. Currently, you can do this manually for each email by choosing a menu option. Here's how to do it automatically:
Quit Apple Mail first, then open the Terminal appliation and type:
defaults write com.apple.mail PreferPlainText -bool TRUE
That's it! Next time you start Mail, you'll notice the difference. To undo this change, run same command again but with FALSE at the end.
Here's how to do it in MS Entourage for Mac OS X:
Even though it's a Microsoft product, Entourage is a great option because it gives you the kind of integrated email, contacts, notes, to-do lists, and calendars you get with Outlook, but without any of the viral susceptibilities (there are still no known viruses for Mac OS X or exploits for Entourage).
To disable all HTML email in Entourage, pull down Entourage | Mail and News Preferences. Uncheck the "Show HTML Formatting toolbar" box and set the Mail Format picklist to "Plain Text."
How to switch off HTML in Mozilla 1.6 for Mac:
1. Click on Edit
2. Select Mail & Newsgroups Account Settings
3. Select Composition & Addressing
4. Unclick Compose message in HTML format
Here's how to do it in Pegasus Mail:
Go to Tools-Options-Outgoing Mail-Message Formatting and tick the box "Disable all text styling options (never send styled mail)"
Here's how to do it in Calypso:
Henry Baker (email@example.com) adds:
I've been using a great email client named Calypso ever since it first came out. In those days, of course, email programs were simply that and "rich text" was left where it belongs -- on theWeb and inword processors.But that was before Gates got his grimy fingers into everything.
Anyway, I've been using Calypso v.2x all these years and just never bothered to upgrade to v3 when it came out. Then I decided to the other day and discovered they've discontinued the program. They claimed it didn't meet their revenue expectations enough to continue with it. But an email got me the developers' directory where I could download it and it turned out it wasn't $40 any more -- it was free. What a deal.
It's a world-class email client -- the best on earth, in my opinion. If you're interested in taking a look at it, I put all the files in a directory on my website:
Here's how to disable HTML in Calypso v.3x:
- Highlight mailbox name in tree;
- In the top menu click Mailbox;
- Click Properties;
- Click Security tab;
- Check the box beside "Disable rich text (HTML) messaging;"
- Click OK.
Notes on BareBone's MailSmith for Mac (Classic and OS X):
Jason Davies (ucgajpd at ucl dot ac dot uk) notes:
Mailsmith refuses to render HTML but (nowadays) offers a simplified plain text version. If you want to read the html you have to open the attachment in a browser. Thus it is impossible to get caught in many of the problems. At least this way you can protect yourself against the menace, if not receiving it. And you certainly can't send it!
have a look at www.barebones.com for Mailsmith which, for searching, indexing, scripting and interface, beats the other emailers hands down. Of course you don't need to adjust the settings...
However, an anonymous reader writes to add:
This is actually MORE dangerous, as you will open a local file with the Browser. Local often implies that many security features are disabled as in (your link) "Researchers reveal new Explorer, Outlook security flaw".
If you run a MailMan-based mailing list, you can disable HTML email list-wide.
Go to the "Content filtering" page in the administrative interface, select "convert text/html parts to plain text" and bid HTML messages on your list a fond farewell. Actually, sending them off to oblivion with a scornful parting shot is more like it.
Have a comment on the practice of using HTML (rich text / formatted) email? A discussion topic for this page is available here.
Because my feelings about the problems with HTML email have for the most part changed, this page is no longer actively maintained.