RFC 1344 - Implications of MIME for Internet Mail Gateways

[フレーム]

 Network Working Group N. Borenstein, Bellcore
 Request for Comments: 1344 June 1992
 
 Implications of MIME for Internet Mail Gateways
 
 
 Status of This Memo
 
 This is an informational memo for the Internet community,
 and requests discussion and suggestions for improvements.
 This memo does not specify an Internet standard.
 Distribution of this memo is unlimited.
 
 Abstract
 
 The recent development of MIME (Multipurpose Internet Mail
 Extensions) offers a wide range of new opportunities for
 electronic mail system systems. Most of these opportunites
 are relevant only to user agents, the programs that interact
 with human users when they send and receive mail. However,
 some opportunities are also opened up for mail transport
 systems. While MIME was carefully designed so that it does
 not require any changes to Internet electronic message
 transport facilities, there are several ways in which
 message transport systems may want to take advantage of
 MIME. These opportunities are the subject of this memo.
 
 Background -- The MIME Format
 
 Recently, a new standardized format has been defined for
 enhanced electronic mail messages on the Internet. This
 format, known as MIME, permits messages to include, in a
 standardized manner, non-ASCII text, images, audio, and a
 variety of other kinds of interesting data.
 
 The MIME effort was explicitly focused on requiring
 absolutely no changes at the message transport level.
 Because of this fact, MIME-format mail runs transparently on
 all known Internet or Internet-style mail systems. This
 means that those concerned solely with the maintenance and
 development of message transport services can safely ignore
 MIME completely, if they so choose.
 
 However, the fact that MIME can be ignored, for the purpose
 of message transport, does not necessarily mean that it
 should be ignored. In particular, MIME offers several
 features that should be of interest to those responsible for
 message transport services. By exploiting these features,
 transport systems can provide certain additional kinds of
 service that are currently unavailable, and can alleviate a
 few existing problems.
 
 The remainder of this document is an attempt to briefly
 point out and summarize some important ways in which MIME
 
 
 
  Borenstein [Page 1]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 may be of use for message transport systems. This document
 makes no attempt to present a complete technical description
 of MIME, however. For that, the reader is refered to the
 MIME document itself [RFC-1341].
 
 Mail Transport and Gateway Services: A Key Distinction
 
 Before implementing any of the mechanisms discussed in this
 memo, one should be familiar with the distinction between
 mail transport service and mail gateway service. Basically,
 mail transport software is responsible for moving a message
 within a homogeneous electronic mail service network. Mail
 gateways, on the other hand, exchange mail between two
 significantly different mail environments, including via
 non-electronic services, such as postal mail.
 
 In general, it is widely considered unacceptable for mail
 transport services to alter the contents of messages. In
 the case of mail gateways, however, such alteration is often
 inevitable. Thus, strictly speaking, many of the mechanisms
 described here apply only to gateways, and should not be
 used in simple mail transport systems. However, it is
 possible that some very special situations -- e.g., an SMTP
 relay that transports mail across extremely expensive
 intercontinental network links -- might need to modify
 messages, in order to provide appropriate service for those
 situations, and hence must redefine its role to be that of a
 gateway.
 
 In this memo, it is assumed that transformations which alter
 a message's contents will be performed only by gateways, but
 it is recognized that some existing mail transport agents
 may choose to reclassify themselves as gateways in order to
 perform the functions described here.
 
 Rejected Messages
 
 An unfortunately frequent duty of message transport services
 is the rejection of mail to the sender. This may happen
 because the mail was undeliverable, or because it did not
 conform to the requirements of a gateway (e.g., it was too
 large).
 
 There has never been a standard format for rejected messages
 in the past. This has been an annoyance, but not a major
 problem for text messages. For non-text messages, however,
 the lack of a standard rejection format is more crucial,
 because rejected messages typically appear to be text, and
 the user who finds himself viewing images or audio as if
 they were text is rarely happy with the result.
 
 MIME makes it very easy to encapsulate messages in such a
 way that their semantics are completely preserved. The
 simplest way to do this is to make each rejection notice a
 
 
 
  Borenstein [Page 2]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 MIME "multipart/mixed" message. That multipart message
 would contain two parts, a text part explaining the reason
 for the rejection, and an encapsulated message part that
 contained the rejected message itself.
 
 It should be stressed that the transport software does not
 need to understand the structure of the rejected message at
 all. It merely needs to encapsulate it properly. The
 following, for example, shows how any MIME message may be
 encapsulated in a rejection message in such a way that all
 information will be immediately visible in the correct form
 if the recipient reads it with a MIME-conformant mail
 reader:
 
 From: Mailer-Daemon <daemon@somewhere.com>
 Subject: Rejected Message
 Content-type: multipart/mixed; boundary=unique-boundary
 
 --unique-boundary
 Content-type: text/plain; charset=us-ascii
 
 A mail message you sent was rejected. The details of
 the rejected message are as follows:
 
 From: Nathainel Borenstein <nsb@bellcore.com>
 Message-ID: <12345@bellcore.com>
 To: bush@whitehouse.gov
 Subject: I know my rights!
 Rejection-reason: No mail from libertarians is
 accepted.
 
 The original message follows below.
 --unique-boundary
 Content-type: message/rfc822
 
 The ENTIRE REJECTED MESSAGE, starting with the headers,
 goes here.
 
 --unique-boundary--
 In the above example, the ONLY thing that is not
 'boilerplate" is the choice of boundary string. The phrase
 "unique-boundary" should be replaced by a string that does
 not appear (prefixed by two hyphens) in any of the body
 parts.
 
 Encapsulating a message in this manner is very easily done,
 and will constitute a significant service that message
 transport services can perform for MIME users.
 
 IMPORTANT NOTE: The format given above is simply one of
 many possible ways to format a rejection message using MIME.
 Independent IETF efforts are needed in order to standardize
 the format of rejections and acknowledgements.
 
 
 
 
  Borenstein [Page 3]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 Fragmenting and Reassembling Large Messages
 
 One problem that occurs with increasing frequency in
 Internet mail is the rejection of messages because of size
 limitations. This problem can be expected to grow
 substantially more severe with the acceptance of MIME, as
 MIME invites the use of very large objects such as images
 and audio clips. Fortunately, MIME also provides mechanisms
 that can help alleviate the problem.
 
 One particularly relevant MIME type is "message/partial",
 which can be used for the automatic fragmentation and
 reassembly of large mail messages. The message/partial type
 can be handled entirely at the user agent level, but message
 transport services can also make use of this type to provide
 more intelligent behavior at gateways.
 
 In particular, when gatewaying mail to or from a system or
 network known to enforce size limitations that are more or
 less stringent than are enforced locally, message transport
 services might choose either to break a large message into
 fragments, or (perhaps less likely) to reassemble fragments
 into a larger message. The combination of these two
 behaviors can make the overall Internet mail environment
 appear more complete and seamless than it actually is.
 
 Details on the message/partial format may be found in the
 MIME document. What follows is an example of how a simple
 short message might be broken into two message/partial
 messages. In practice, of course, the message/partial
 facility would only be likely to be used for much longer
 messages.
 
 The following initial message:
 
 From: Nathaniel Borenstein <nsb@bellcore.com>
 To: Ned Freed: <ned@innosoft.com>
 Subject: a test message
 Content-type: image/gif
 Content-Transfer-Encoding: base64
 
 R0lGODdhQAGMAbMAAAAAAP/u7swzIu6ZiLsiEd1EM+5VRGaI3WYAAO67qkRV
 uwARd6q7/ywAAAAAQAGMAUME/hDISau9OOvNu/9gKI6kRJwoUa5s675wLM90l
 XW5YKxqPyKRygxv2dr4czwlMCZrQLFTYHBJ2hlyQYFiaz+i0WWBou7fOq1x8vXWfU
 qU1fJ2qEhYaHGjhZQmJ2QT1xBW1ak1xUdV0/VjtsbpUEDaEJCQOIpqeoNV+LXo5W
 fVN3dZKceAQPvgyhwQ2lqcXGxx5wja59eJIGUNCszF90sYp50CoqFZ4DoqMMo6M
 
 can be transformed, invertibly, into the following two
 message/partial messages:
 
 
 From: Nathaniel Borenstein <nsb@bellcore.com>
 
 
 
 
 
  Borenstein [Page 4]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 To: Ned Freed <ned@innosoft.com>
 Subject: a test message
 Content-type: message/partial; id="xyx@host.com";
 number=1; total=2
 
 Content-type: image/gif
 Content-Transfer-Encoding: base64
 
 R0lGODdhQAGMAbMAAAAAAP/u7swzIu6ZiLsiEd1EM+5VRGaI3WYAAO67qkRV
 
 and
 
 From: Nathaniel Borenstein <nsb@bellcore.com>
 To: Ned Freed <ned@innosoft.com>
 Subject: a test message
 Content-type: message/partial; id="xyx@host.com";
 number=2; total=2
 
 uwARd6q7/ywAAAAAQAGMAUME/hDISau9OOvNu/9gKI6kRJwoUa5s675wLM90l
 XW5YKxqPyKRygxv2dr4czwlMCZrQLFTYHBJ2hlyQYFiaz+i0WWBou7fOq1x8vXWfU
 qU1fJ2qEhYaHGjhZQmJ2QT1xBW1ak1xUdV0/VjtsbpUEDaEJCQOIpqeoNV+LXo5W
 fVN3dZKceAQPvgyhwQ2lqcXGxx5wja59eJIGUNCszF90sYp50CoqFZ4DoqMMo6M
 
 Fragmenting such messages rather than rejecting them might
 be a reasonable option for some gateway services, at least
 for a certain range of message sizes. Of course, it is
 often difficult for a gateway to know what size limitations
 will be encountered "downstream", but intelligent guesses
 are often possible. Moreover, an IETF working group on SMTP
 extensions has proposed augmenting SMTP with a "SIZE" verb
 that would facilitate this process, thereby possibly
 requiring fragmentation on the fly during message
 transmission.
 
 Note also that fragmentation or reassembly might reasonably
 be performed, in differing circumstances, by either the
 sending or receiving gateway systems, depending on which
 system knew more about the capabilities of the other.
 
 Using or Removing External-Body Pointers
 
 Another MIME type oriented to extremely large messages is
 the "message/external-body" type. In this type of message,
 all or part of the body data is not included in the actual
 message itself. Instead, the Content-Type header field
 includes information that tells how the body data can be
 retrieved -- either via a file system, via anonymous ftp, or
 via other mechanisms.
 
 The message/external-body type provides a new option for
 mail transport services that wishes to optimize the way
 bandwidth resources are used in a given environment. For
 example, the basic use of message/external-body is to reduce
 bandwidth in email traffic. However, when email crosses a
 
 
 
  Borenstein [Page 5]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 slow and expensive boundary -- e.g., a satellite link across
 the Pacific -- it might make sense to retrieve the data
 itself and transform the external-body reference into the
 actual data. Alternately, it might make sense to copy the
 data itself to a new location, closer to the message
 recipients, and change the location pointed to in the
 message. Because the external-body specification can
 include an expiration date, message transport services can
 trade off storage and bandwidth capabilities to try to
 optimize the overall use of resources for very large
 messages.
 
 Such behaviors by a gateway require careful analysis of
 cost/benefit tradeoffs and would be a dramatic departure
 from typical mail transport services. However, the
 potential benefits are quite significant, so that such the
 appropriate use of these service options should be explored.
 
 For example, the following message includes PostScript data
 by external reference:
 
 From: Nathaniel Borenstein <nsb@bellcore.com>
 To: Ned Freed <ned@innosoft.com>
 Subject: The latest MIME draft
 Content-Type: message/external-body;
 name="BodyFormats.ps";
 site="thumper.bellcore.com";
 access-type=ANON-FTP;
 directory="pub";
 mode="image";
 expiration="1991年6月14日 19:13:14 -0400 (EDT)"
 
 Content-type: application/postscript
 
 A gateway to Australia might choose to copy the file to an
 Australian FTP archive, changing the relevant parameters on
 the Content-type header field. Alternately, it might choose
 simply to transform the message into one in which all the
 data were included:
 
 From: Nathaniel Borenstein <nsb@bellcore.com>
 To: Ned Freed <ned@innosoft.com>
 Subject: The latest MIME draft
 Content-type: application/postscript
 
 %!PS-Adobe-1.0
 %%Creator: greenbush:nsb (Nathaniel Borenstein,MRE 2A-
 274,4270,9938586,21462)
 etc...
 
 This is an example which suggests both the benefits and the
 dangers. There is considerable benefit to having a copy of
 the data immediately available, but there also may be
 considerable expense involved in transporting it to all of
 
 
 
  Borenstein [Page 6]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 a the members of a list, if only a few will use the data
 anytime soon.
 
 Alternatively, instead of replacing an external-body message
 with its real contents, it might make sense to transform it
 into a "multipart/alternative" message containing both the
 external body reference and the expanded version. This
 means that only the external body part can be forwarded if
 desired, and the recipient doesn't lose the information as
 to where the data was fetched from, if they want to fetch an
 up-to-date version in the future. Such information could be
 represented, in MIME, in the following form:
 
 From: Nathaniel Borenstein <nsb@bellcore.com>
 To: Ned Freed <ned@innosoft.com>
 Subject: The latest MIME draft
 Content-type: multipart/alternative; boundary=foo
 
 --foo
 Content-Type: message/external-body;
 name="BodyFormats.ps";
 site="thumper.bellcore.com";
 access-type=ANON-FTP;
 directory="pub";
 mode="image";
 expiration="1991年6月14日 19:13:14 -0400 (EDT)"
 
 Content-type: application/postscript
 --foo
 Content-type: application/postscript
 
 %!PS-Adobe-1.0
 %%Creator: greenbush:nsb (Nathaniel Borenstein,MRE 2A-
 274,4270,9938586,21462)
 etc...
 --foo--
 
 Similarly for the case where a message is copied to a local
 FTP site, one could offer two external body parts as the
 alternatives, allowing the user agent to choose which FTP
 site is preferred.
 
 Image and other Format Conversions
 
 MIME currently defines two image formats, image/gif and
 image/jpeg. The former is much more convenient for many
 users, and can be displayed more quickly on many systems.
 The latter is a much more compact representation, and
 therfore places less stress on mail transport facilities.
 
 Message transport services can optimize both transport
 bandwidth and user convenience by intelligent translation
 between these formats (and other formats that might be added
 later). When a message of type image/gif is submitted for
 
 
 
  Borenstein [Page 7]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 long-haul delivery, it might reasonably be translated to
 image/jpeg. Conversely, when image/jpeg data is received
 for final delivery on a system with adequate storage
 resources, it might be translated to image/gif for the
 convenience of the recipient. Software to perform these
 translations is widely available. It should be noted,
 however, that performance of such conversions presumes
 support for the new format by the recipient.
 
 Although MIME currently only defines one audio format, more
 are likely to be defined and registered with IANA in the
 future. In that case, similar format conversion facilities
 might be appropriate for audio.
 
 If format conversion is done, it is STRONGLY RECOMMENDED
 that some kind of trace information (probably in the form of
 a Received header field) should be added to a message to
 document the conversion that has been performed.
 
 Some people have expressed concerns, or even the opinion
 that conversions should never be done. To accomodate the
 desires of those who dislike the idea of automatic format
 conversion. For this reason, it is suggested that such
 transformations be generally restricted to gateways rather
 than general message transport services, and that services
 which perform such conversions should be sensitive to a
 header field that indicates that the sender does not wish to
 have any such conversions performed. A suggested value for
 this header field is:
 
 Content-Conversion: prohibited
 
 User agents that wish to explicitly indicate a willingness
 for such conversions to be performed may use:
 
 Content-Conversion: permitted
 
 However, this will be the default assumption of many
 gateways, so this header field is not strictly necessary.
 It also should be noted that such control of conversion
 would only be available to the sender, rather than to any of
 the recipients.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  Borenstein [Page 8]

  RFC 1344 MIME and Mail Gateways June 1992
 
 
 Robust Encoding of Data
 
 In addition to all the reasons given above for possible
 transformation of body data, it will sometimes be the case
 that a gateway can tell that the body data, as given, will
 not robustly survive the next step of transport. For
 example, mail crossing an ASCII-to-EBCDIC gateway will lose
 information if certain characters are used. In such cases,
 a gateway can make the data more robust simply by applying
 one of the MIME Content-Transfer-Encoding algorithms (base64
 or quoted-printable) to the body or body part. This will
 generally be a loss-less transformation, but care must be
 taken to ensure that the resulting message is MIME-
 conformant if the inital message was not. (For example, a
 MIME-Version header field may need to be added.)
 
 User-oriented concerns
 
 If a gateway is going to perform major transformations on a
 mail message, such as translating image formats or mapping
 between included data and external-reference data, it seems
 inevitable that there will be situations in which users will
 object to these transformations. This is, in large part, an
 implementation issue, but it seems advisable, wherever
 possible, to provide a mechanism whereby users can specify,
 to the transport system, whether or not they want such
 services performed automatically on their behalf. The use of
 the "Content-Conversion" header field, as mentioned above,
 is suggested for this purpose, since it it least provides
 some control by the sender, if not the recipient.
 
 References
 
 [RFC-1341] Borenstein, N., and N. Freed, "MIME
 (Multipurpose Internet Mail Extensions): Mechanisms for
 Specifying and Describing the Format of Internet Message
 Bodies", RFC 1341, Bellcore, June, 1992.
 
 Security Considerations
 
 Security issues are not discussed in this memo.
 
 Author's Address
 
 Nathaniel S. Borenstein
 MRE 2D-296, Bellcore
 445 South St.
 Morristown, NJ 07962-1910
 
 Email: nsb@bellcore.com
 Phone: +1 201 829 4270
 Fax: +1 201 829 7019
 
 
 
 
 
 Borenstein [Page 9]
 

AltStyle によって変換されたページ (->オリジナル) /