"HTML email, was that your fault?"

tl;dr: "Probably".

Just for the record, when this Unfrozen Caveman bitches about the horrors of the world, it is not without recognition of my culpability.

Montulli and Weissman also deserve a portion of the blame, but I was the one who ran with it, so I'm sure they'd be happy to let me fall on that sword.

{You're|I'm} {welcome|sorry}.

Date: Thu, 25 Aug 2011 20:01:22 -0700
From: Jamie Zawinski <jwz@jwz.org>
Subject: Re: HTML e-mail: is it your fault?
Mime-Version: 1.0 (Apple Message framework v1084)
Content-Type: text/plain; charset=us-ascii
X-Mailer: Apple Mail (2.1084)

Date: Thu, 25 Aug 2011 14:45:13 -0700
From: Andrew Gray <adsgray@...>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
User-Agent: Mutt/1.5.20 (2009-08-17)


I'm trying to figure out when HTML e-mails were first sent. Do you happen to know if the Netscape Mail and News clients that you worked on were the first MUAs to render HTML?

This question is in the context of struggling to craft an HTML e-mail that looks "good" in every possible stupid mail program that anyone could possibly still be using in the year 2011.

You know, my gut reaction is that the answer to this question is "no", but after some digging, I have yet to find any evidence of a mail reader that can display inline HTML messages (email or USENET) that predates Netscape 2.0!

So, maybe?

If you find out for sure, please let me know!

I think there may have been closed systems inside Compuserve and Outlook that supported rich text messages (in formats other than HTML).

The Andrew Message System at CMU and MIT supported WYSIWYG rich messages, including inline images and audio attachments, as early as 1985. Not HTML or MIME, but a predecessor to MIME, as the architect of that was Nathaniel Borenstein who wrote the first MIME RFC.

My other project is a time machine of course. First application: preventing HTML e-mail from ever happening.

Yeah, go back to chipping your USENET posts out with a piece of flint, why don't you.

Even if it wasn't the first, Netscape Mail was probably the first mail reader that put the ability to easily *view* HTML messages in front of more than a million users.

I know that Eudora 4 supported display of HTML email, and possibly composition of it, but I'm not sure when that was released. [Update: it was released in 1998.]

Qualcomm/Eudora spent a while trying to push text/enriched (RFC 1523, published late 1993 -- not sure when Eudora first supported it) as an alternative to HTML, but that went nowhere. Early versions of Netscape (at least 1.1, I think possibly earlier) supported display of text/enriched, but just about nobody was even aware of that because nobody ever used it.

We also supported display of text/richtext, which was an HTML-like SGML dialect with only a few tags. In 2.0b1 or possibly earlier. I added that just to placate the peanut gallery, not because I expected anyone to actually use it.

I think the only person who really used text/enriched was Brad Templeton through ClariNet, where you could subscribe to USENET newsgroups of the UPI/AP feeds that were formatted with it.

From Mosaic Netscape 0.9 through Netscape Navigator 1.1 (1994), there was a mail composition window which allowed one to attach external URLs. They were attached as MIME multipart/mixed attachments with proper Content-Type and Content-Transfer-Encoding (using quoted-printable to ensure short lines).

You could also "attach" things with "Include Document Text" which would suck them in as plain-text with ">" at the beginning of each line, wrapped at 72 columns.

There was also a USENET news reader and composer built-in. The USENET reader's display of MIME documents was remedial at best. The composition tool only allowed plain-text. Version 0.9 displayed any part of a message between <HTML> and </HTML> as such, even if there was no Content-Type header. That was removed some time before 2.0. Back then, you couldn't actually rely on a Content-Type header propagating through multiple USENET hops -- bnews would strip out any headers it didn't know about!

(Remember that 1.1's big innovation was *tables*. 1.0 didn't have 'em!)

2.0 contained the mail reader, with full MIME support (which was also a news reader, replacing the minimalist one that 1.0 had). So that showed up in 1.22b or so, mid 1995, I guess?

I believe 3.0 was the first version with WYSIWYG HTML composition, early 1996. To accomplish that in 2.0, you had to attach an HTML file. If there was only one attachment, it was sent as the single MIME part.

Forwarded messages were attachments of type message/rfc822 and included full headers, which were hidden upon inline display. Nobody does that any more because now the world sucks.

There was the IETF MHTML working group as early as 1995. I can't find a working archive of the mailing list, but it was run by a fellow named Jacob Palme -- http://people.dsv.su.se/~jpalme/ietf/jp-ietf-home.html

Microsoft Outlook Express shipped in 2005 and did not support HTML, but later versions (2006? Maybe 2008?) posted HTML *by default* to both mail and news. This angered many. Outlook Express is also where the blight of top-posting originated, those monsters.

Here, this may be helpful too: http://web.archive.org/web/19990128073742/http%3A//www.cis.ohio-state.edu/hypertext/faq/usenet/mail/mime-faq/part2/faq.html

Also this: http://segate.sunet.se/cgi-bin/wa?A3=ind9606&L=MHTML&E=7bit&P=124821&B=--------------2F1C7DE14487&T=text%2Fhtml;%20charset=us-ascii

It would be fantastic if you could update http://en.wikipedia.org/wiki/HTML_email with your findings.

DNA Lounge - 375 Eleventh Street, SF CA 94103 - 415-626-1409

Previously, previously, previously, previously, previously, previously, previously, previously.

Tags: , , , , , ,

28 Responses:

  1. Billy says:

    every possible stupid mail program that anyone could possibly still be using in the year 2011.

    User-Agent: Mutt/1.5.20 (2009-08-17)


    (Disclaimer: I occasionally fire up Pine at work to check my email.)

    • rjc says:

      There's absolutely nothing wrong with mutt - I've been a happy user for the past 15+ years.

      • I hate not being able to look at other messages in the thread while I'm composing a reply.

        (Yes, I can open a new terminal and launch a 2nd Mutt instance and navigate to the right mailbox and find the right thread and I stopped caring a few steps ago. The other solution -- quit vim, postpone email, look things up, go back to composing -- is even more annoying.)

        And still I'm using Mutt (since 1996) because I can't find anything better.

        • Jonathan says:

          > I hate not being able to look at other messages in the thread while I'm composing a reply.

          Haha yes.

          > And still I'm using Mutt (since 1996) because I can't find anything better.

          Same. I keep toying with trying to write an alternative. I thought lumail might have promise but I'm not sure.

        • rjc says:

          > I hate not being able to look at other messages in the thread while I'm composing a reply.

          Looks like the way we do email is slightly different - I read the thread before replying and I reply to a single message so all the information is already there :^)

          As a side note, nowadays, especially in a corporate environment (read Exchange with Outlook) people top post and never quote the messages properly, keeping the whole history effectively having the whole thread in the single message. As much as I hate it, this seems to be the "solution" to your problem :^P

  2. MrEricSir says:

    Shiva Ayyadurai files a lawsuit against Jamie in 3... 2... 1...

  3. Aaron Priven says:

    It's a minor point, but I was on ClariNet staff from 1993-1998 and we didn't use text/enriched. (In fact, the only email mentioning it from that period is an internal request not to use it in email.) Brad Templeton invented this thing called proletext which used a combination of spaces and tabs to invisibly format text. This was supported only on ClariNet's own copy-Usenet-to-HTML tool, as far as I recall, but it did allow us to do rich text (kind of) and plain text in the same feed.

  4. For whatever it's worth, Outlook Express first appeared with Internet Explorer 4.0 in 1997 and it did support both composing and reading HTML e-mail at that time.

    • Leonardo Herrera says:

      And there was a thing named Microsoft Internet Mail & News even before that.

  5. Nelson says:

    NeXTMail is important prior art. It was sending bullshit encoded fancy email in 1993, maybe 1992. Not HTML, so not precise prior art, but other hyper-crap-enabled-email.

    • jwz says:

      1992. NeXT used RTF for formatting, which originated at MICROS~1 and is, to my horror, still the way MacOS X application bundles format text, since all of Cocoa was lifted wholesale from NeXTstep.

      I think RTF was a descendant of the Andrew Datastream format. Or maybe they were both just TeX wannabes. I can't actually find an example of an Andrew Datastream document to check... But hilariously, while searching for one, I came across my own Andrew parser from 1987.

      • Imdat (iso) says:

        It was already with NeXTSTEP 2.0 (around end of 1990) that NeXTMail used RTF. In fact, you could also send attachments with it, in which case the RTF was switched to RTF-D (RTF-Directory).
        The mail body was stored in a directory (let's say: "report") in which there was "text.rtf" und the attachments. NeXT extended the RTF-formatting commands by "NeXTAttachment", which then would link to the attachments.
        The whole directory (or single RTF-file in case there were no attachments) was tar'd, compress'ed (.Z) and then uuencode'ed and sent over the net. On the other side, the only thing you had to do was uudecode, uncompress and untar and you had the email-body.
        But not, it was not "mime/multi-part", it was only this "part"

        • jwz says:

          Oh yes, .rtfd is alive and well on OS X:

          % ls ~/Desktop/Untitled.rtfd/
          DIPOhJqXkAEwnpD.jpg TXT.rtf

          But even though it doesn't have a Contents/Info.plist it still presents as a "bundle" to Finder rather than a folder. If one were to drag that -- or any folder -- into Mail.app to attach it, it would be ZIPped and base64ed.

          • Imdat (iso) says:

            The fact it is shown as bundle is a relic from NeXTSTEP times. In those times, you only needed to declare an extension and if a folder had such an extension, it would be shown as a bundle... We used it for many different file-formats, it made life a lot easier if you had a file-format that needed many different files in it.

        • I'd thought RTF was from Microsoft, and as usual, they couldn't be bothered to follow their own format. It eventually grew into Word's format. Or so a vaguely recall NeXT people bitching back in the day.

        • And you could put animated display postscript in your NeXT email

      • Tim says:

        Re: TeX and email, {\em of course} someone thought that might be a good idea (Chrome web store link).

        RTF and Andrew format both seem to inherit TeX's barbaric syntax.

  6. Andrew says:

    I think the bit about Outlook Express is inaccurate. Not the bit about top-posting, you're right about that, but I was certainly using OE before 2005. Wikipedia says that Outlook Express 4 appeared in 1997 (together with IE4), and that it existed prior to that, under a different name. That seems right to me. I'm also fairly certain it supported HTML email in 1997. I could dig out a Win98 machine to check.

  7. rone says:

    Looked into my archives, first text/html mail i preserved came from

    User-Agent: Microsoft Outlook Express Macintosh Edition - 5.0 (1513)
    Date: Fri, 24 Mar 2000 00:44:07 -0500

  8. Dara says:

    Ugh, Outlook's winmail.dat-attachment-stored TNEF encoding. I'm pretty sure storing formatting that way started with Exchange 4.0 Client for Windows. They'd also wrap OLE objects in it or something horrible like that, and they were completely unusable by anything else on the planet.

    It's not HTML, of course - it's worse.

    I'm trying to remember if we had any support for that mess in MSMAIL and I'm pretty sure not. (I was the last standing SFS/MS-MAIL developer, and I didn't do anything with text formatting - I was mostly a server dev, and the only good thing about it being an attachment was that we didn't have to do anything special with it.)

  9. I still use a text-only mail reader, because I worry about the increased attack surface of HTML mail. Do not accept High Beyond protocol packets!

    • Nick Lamb says:

      It's really hard to have the opening of "A Fire..." work the way it should in this regard. Why start with the mere AI? The same trick works all the way up the stack, the people find something really interesting in the library, something that you need a tl;dr of before you can grok it for yourself, and the tl;dr begins your infection so that without there ever being that sudden "flowering" the Evil just seeps into everything and takes over the galaxy. But that's not a novel, and Vinge is writing a novel.

      But in terms of guarding against problems in email, again it works all the way up the stack. Attachments that run native code when clicked and emails claiming to be "To my beloved in the Kingdom of God" are just doing the same trick in different layers of the stack. Satanism, a primary language other than English, and running pine are the same kind of mitigation in this respect, choosing obscurity as a defence against unknown threats. Mac uses are the Cavendish banana of IT.

  10. David A says:

    In other fun news, text/enriched just earned a CVE in emacs: http://seclists.org/oss-sec/2017/q3/422

  11. Terry Weissman says:

    What I remember as being my fault -- or, more accurately, what I remember you being (legitimately) very upset with me at the time for not working to prevent -- was multipart/alternative emails with text and HTML parts. I'd hate to try and calculate how much bandwidth that's been responsible for over the years.

    • jwz says:

      At the time that kinda was the worst of both worlds, wasn't it? Either you had something that understood MIME, in which case it was or should be perfectly capable of converting HTML to plain-text on its own, or you didn't, in which case every message dumped right on the screen, "This is a multi-part message in MIME format. --b1_e680e2ba321ebeaac85370ad32cab903 Content-Type: text/plain; charset=US-ASCII Hi, Terry..."

      Oh, I forgot about X-Sun-Attachment! We supported that, too! I think it was mostly uuencode and compress (not gzip, that was far too newfangled.)

  • Previously