Network Working Group G. Vaudreuil Request for Comments: 1830 Octel Network Services Category: Experimental August 1995SMTP Service Extensions for Transmission of Large and Binary MIME Messages
1. Abstract
This memo defines two extensions to the SMTP service. The first service enables a SMTP client and server to negotiate the use of an alternate DATA command "BDAT" for efficiently sending large MIME messages. The second extension takes advantage of the BDAT command to permit the negotiated sending of unencoded binary data.
2. Introduction
The MIME extensions to the Internet message protocol provides for the transmission of many kinds of data which were previously unsupported in Internet mail. Anticipating the need to more efficiently transport the new media made possible with MIME, the SMTP protocol has been extended to provide transport for new message types. RFC 1426 defines one such extension for the transmission of unencoded 8 bit MIME messages [8BIT]. This service extension permits the receiver SMTP to declare support for 8 bit body parts and the sender to request 8 bit transmission of a particular message.
Vaudreuil Experimental [Page 1]
RFC 1830 Binary and Large Message Transport August 1995 3. Framework for the Large Message ExtensionsThe following service extension is hereby defined:
Vaudreuil Experimental [Page 2]
RFC 1830 Binary and Large Message Transport August 1995
A 250 response should be sent to each BDAT data block. If a 5XX code is sent in response to a BDAT chunk the message should be considered failed and, the sender SMTP must not send any additional BDAT segments. If using the ESMTP pipelining extensions [PIPE], the sender SMTP must complete the sending of the current segment and not send any more BDATs. When streaming, the receiver SMTP must accept and discard additional BDAT chunks after the failed BDAT. After receiving a 5XX error in response to a BDAT command, the resulting state is indeterminate. A RSET command must be issued to clear the transaction before additional commands may be sent.
Vaudreuil Experimental [Page 3]
RFC 1830 Binary and Large Message Transport August 1995 4. Framework for the Binary Service ExtensionThe following service extension is hereby defined:
Vaudreuil Experimental [Page 4]
RFC 1830 Binary and Large Message Transport August 1995
The syntax of the extended MAIL command is identical to the MAIL command in [RFC821], except that a BODY parameter must appear after the address. The complete syntax of this extended command is defined in [ESMTP]. The ESMTP-keyword is BODY and the syntax for ESMTP-value is given by the syntax for body-value in [ESMTP].
Vaudreuil Experimental [Page 5]
RFC 1830 Binary and Large Message Transport August 1995 5. Examples 5.1 Simple ChunkingThe following simple dialogue illustrates the use of the large message extension to send a short psudo-RFC822 message to one recipient using the CHUNKING extension:
5.2 Pipelining Binarymime
The following dialogue illustrates the use of the large message extension to send a BINARYMIME object to two recipients using the CHUNKING and PIPELINING extensions:
Vaudreuil Experimental [Page 6]
RFC 1830 Binary and Large Message Transport August 1995 6. Security ConsiderationsThis RFC does not discuss security issues and is not believed to raise any security issues not already endemic in electronic mail and present in fully conforming implementations of [RFC821], or otherwise made possible by [MIME].
7. Acknowledgments
This document is the result of numerous discussions in the IETF SMTP Extensions Working Group and in particular due to the continued advocacy of "chunking" by Neil Katin.
8. References
[RFC821] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
Vaudreuil Experimental [Page 7]
RFC 1830 Binary and Large Message Transport August 1995 9. Author's AddressGregory M. Vaudreuil Octel Network Services 17060 Dallas Parkway Suite 214 Dallas, TX 75248-1905