RFC 1830 (rfc1830) - Page 2 of 8


SMTP Service Extensions for Transmission of Large and Binary MIME Messages



Alternative Format: Original Text Document



RFC 1830           Binary and Large Message Transport        August 1995


   This memo uses the mechanism defined in [ESMTP] to define two
   extensions to the SMTP service whereby a client ("sender-SMTP") may
   declare support for the message chunking transmission mode using the
   BDAT command and support for the sending of Binary messages.

3. Framework for the Large Message Extensions

   The following service extension is hereby defined:

          1) The name of the data chunking service extension is
          "CHUNKING".

          2) The EHLO keyword value associated with this extension is
          "CHUNKING".

          3) A new SMTP verb is defined "BDAT" as an alternative to
          the "DATA" command of [RFC 821]. The BDAT verb takes two
          arguments.  The first argument indicates the length of the
          binary data packet.  The second optional argument indicates
          that the data packet is the last.

               bdat-cmd   ::= "BDAT" SP chunk-size
                              [ SP end-marker ] CR LF
               chunk-size ::= 1*DIGIT
               end-marker ::= "LAST"


   The CHUNKING service extension enables the use of the BDAT
   alternative to the DATA command.  This extension can be used for any
   message, whether 7 bit, 8BITMIME or BINARYMIME.

   When a client SMTP wishes to submit (using the MAIL command) a large
   message using the CHUNKING extension, it first issues the EHLO
   command to the server SMTP.  If the server SMTP responds with code
   250 to the EHLO command, and the response includes the EHLO keyword
   value CHUNKING, then the server SMTP is indicating that it supports
   the BDAT command and will accept the sending of messages in chunks.

   After all MAIL FROM and RCPT TO responses are collected and
   processed, the message is sent using a series of BDAT commands.  The
   BDAT command takes one argument, the exact length of the data segment
   in octets.  The message data is sent immediately after the BDAT
   command.  Once the receiver-SMTP receives the specified number of
   octets, it will return a 250 reply code.

   The LAST parameter on the BDAT command indicates that this is the
   last chunk of message data to be sent.  Any BDAT command sent after
   the BDAT LAST is illegal and must be replied to with a 503 "Bad



Vaudreuil                     Experimental