Re: MIME implementation documentation

Jamie Zawinski <jwz@netscape.com> Sun, 18 August 1996 05:29 UTC

Received: from ietf.org by ietf.org id aa14128; 18 Aug 96 1:29 EDT
Received: from cnri by ietf.org id aa14124; 18 Aug 96 1:29 EDT
Received: from list.cren.net by CNRI.Reston.VA.US id aa01709; 18 Aug 96 1:29 EDT
Received: from localhost (localhost [127.0.0.1]) by list.cren.net (8.6.12/8.6.12) with SMTP id BAA14630; Sun, 18 Aug 1996 01:23:12 -0400
Received: from urchin.mcom.com (h-198-95-250-59.netscape.com [198.95.250.59]) by list.cren.net (8.6.12/8.6.12) with ESMTP id BAA14612 for <ietf-822@list.cren.net>; Sun, 18 Aug 1996 01:22:52 -0400
Received: from gruntle ([205.217.227.10]) by urchin.mcom.com (8.7.5/8.7.3) with SMTP id WAA21188; Sat, 17 Aug 1996 22:22:12 -0700 (PDT)
Message-Id: <3216A883.2781@netscape.com>
Date: Sat, 17 Aug 1996 22:22:11 -0700
X-Orig-Sender: owner-ietf-822@list.cren.net
Precedence: bulk
Sender: ietf-archive-request@ietf.org
From: Jamie Zawinski <jwz@netscape.com>
To: Pete Resnick <presnick@qualcomm.com>
Cc: Harald.T.Alvestrand@uninett.no, ietf-822@list.cren.net, moore@cs.utk.edu
Subject: Re: MIME implementation documentation
References: Your message of "Fri, 16 Aug 1996 15:10:43 PDT." <01I8CJGV6XIU8Y507E@INNOSOFT.COM> <v03007814ae3c452a0cd4@resnick1.isdn.uiuc.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Sender: jwz@netscape.com
X-Mailer: Mozilla 3.0 (X11; U; IRIX 5.3 IP22)
X-Listprocessor-Version: 8.0 -- ListProcessor(tm) by CREN

Pete Resnick wrote:
> 
> On 8/17/96 at 2:36 AM -0500, Harald.T.Alvestrand@uninett.no wrote:
> 
> >Are Nested Body Parts widely implemented?
> 
> I have one example from Macintosh Eudora 3.0, but it is sort of a special
> cased example: Mac Eudora 3.0 handles (and in fact expects) reception of
> nested multiparts when it comes to multipart/digest. If someone sends a
> multipart/mixed where the first part is a text/plain (or text/*) and the
> second part is a multipart/digest, Eudora will create a mail message in the
> In-box with the text/* part and an icon for an attached mailbox. When the
> attachment is opened, inside are the contents of the multipart/digest, each
> as a seperate mailbox entry, and those can themselves be any sort of
> message, including multipart messages which are handled recursively.

Netscape 2.0 and newer handle arbitrary nesting of parts, but will only
generate "deep" messages if a document is attached which is itself a
MIME object (forwarding a message which has a multipart inside of it,
for example.)

(Oh, if a dual-forked Mac file is attached, it will be sent as
multipart/appledouble, and that will probably itself end up within a
multipart/mixed.)

We normally generate multipart/mixed when there are attachments, but
will generate multipart/digest if all of the attachments (that is, all
parts but the first) are messages. (So we might generate digests with
only messages in them, or we might generate digests where the very first
part is text/plain and all the rest are messages.)

We don't handle receipt of multipart/digest any differently than
multipart/mixed (except for the rule about what the default part-type
is.)

Netscape 3.0 handles multipart/alternative (receipt, not generation) but
has slightly lenient rules for what the "best" part is.  RFC1521 says
that, when a multipart/mixed is within a multipart/alternative, it would
be reasonable to descend into it to see if all sub-parts are
displayable, but we don't do that.  Instead, we display the first part
of the multipart/alternative which is of a type which we can display
inline.  (The types we can display inline are text/plain, text/richtext,
text/enriched, text/html, image/gif, image/jpeg, image/xbm, certain
subtypes of message/external-body, and multipart/*.) 

(Actually, we don't display the first part that is displayable inline,
we move forward in it until we reach a part that is *not* displayable
inline, and then we display the part before that.  So if we got
text/plain, text/enriched, text/xxx, and text/html, we would display the
text/enriched rather than the text/html.  I'm not 100% convinced that
this is the right thing...)

> >Are External Body Parts widely implemented?

3.0 converts these to clickable URLs when it can (types ftp, anon-ftp,
local-file, mail-server, and url.)  (afs is treated like local-file if
running on Unix and "/afs/." is stat()able; mail-server is turned into a
mailto: URL, which will cause a filled-in mail composition window to
come up.  But if there is a body, it's not filled in automatically.) 
Others are presented by basically just pretty-printing the header
parameters.

-- 
Jamie Zawinski    jwz@netscape.com   http://www.netscape.com/people/jwz/
``A signature isn't a return address, it is the ASCII equivalent of a
  black velvet clown painting; it's a rectangle of carets surrounding
  a quote from a literary giant of weeniedom like Heinlein or Dr. Who.''
                                                         -- Chris Maeda