
Friday September 17, 2004
Many people with whom I regularly correspond know that I have a strong
preference against mail in "pure" HTML format. Here are my reasons,
along with recommended alternatives.
- Spammers can hide tiny images: just a single pixel, small enough that
your eye would likely miss it anyway, and the more insidious ones are
the same color as the background. The URLs provided for your mail
reader to fetch these images can contain encoded data which spammers
can use to confirm your identity. I.e., each message they send can
contain a slightly different URL, and when a mail reader fetches an
image, it serves as confirmation for the spammers that the address
corresponding to that particular URL is "live". This will in turn
increase the likeliness of getting even more spam.
- Not all mail readers handle HTML well. Most modern mail readers do,
especially those with a GUI, but many older mail readers, especially
those which are screen-based, handle HTML badly or not at all. Some
people may use a GUI mail reader at work but a screen-based one at
home or when traveling.
- HTML takes up more bandwidth than plain text. Although this is not
an issue in many environments (such as a high-speed LAN), in other
environments (such a when traveling and stuck with a low-speed dial-up
line) the extra bandwidth can be quite inconvenient.
The ideal alternative, when possible, is simply to send plain text, as
it is sufficient for the vast majority of e-mail conversations.
When richer mark-up is needed, however, most mail programs which can generate
HTML can also generate mixed text and HTML: the message's primary MIME type
is multipart/alternative, with the first part being text/plain and the second
part being text/html. Conforming mail readers will display HTML if they
understand it, or plain text if they don't grok HTML (unless the user has
configured it to display plain text by default).
For the curious, I use exmh at work and home
but nmh (the CLI-based mail reading set
of programs on which exmh is based) when on the road or in any other low-bandwidth
environment. Exmh can display HTML, but it is much slower than displaying
plain text, and not all constructs are well supported. I have mine configured
to display plain text by default for multipart/alternative messages. I also
have SpamAssassin configured to score
"pure" HTML mail very highly, as the vast majority of such mail which I receive
is indeed spam.