⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1830.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
Network Working Group                                       G. VaudreuilRequest for Comments: 1830                        Octel Network ServicesCategory: Experimental                                       August 1995                        SMTP Service Extensions                       for Transmission of Large                        and Binary MIME MessagesStatus of this Memo   This memo defines an Experimental Protocol for the Internet   community.  This memo does not specify an Internet standard of any   kind.  Discussion and suggestions for improvement are requested.   Distribution of this memo is unlimited.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.   One expected result of the use of MIME is that the Internet mail   system will be expected to carry very large mail messages.  In such   transactions, there is a need to eliminate the requirement that the   message be scanned for "CR LF . CR LF" sequences upon sending and   receiving to detect the end of message.   Independent of the need to send large messages, Internet mail is   increasingly multi-media there is a need to avoid the overhead of   base64 and quoted-printable encoding of binary objects sent using the   MIME message format over SMTP between hosts which support binary   message processing.Vaudreuil                     Experimental                      [Page 1]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 [RFC821]. 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 "BadVaudreuil                     Experimental                      [Page 2]RFC 1830           Binary and Large Message Transport        August 1995   sequence of commands" reply code. The state resulting from this error   is indeterminate.  A RSET command must be sent to clear the   transaction before continuing.   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.      Note that an error on the receiver SMTP such as disk full or      imminent shutdown can only be reported after the BDAT segment has      been sent.  It is therefore important to choose a reasonable chunk      size given the expected end to end bandwidth.   The RSET command when issued during after the first BDAT and before   the BDAT LAST clears all segments sent during that transaction and   resets the session.   DATA and BDAT commands cannot be used in the same transaction.  If a   DATA statement is issued after a BDAT for the current transaction, a   503 "Bad sequence of commands" must be issued.  The state resulting   from this error is indeterminate.  A RSET command must be sent to   clear the transaction before continuing.  There is no prohibition on   using DATA and BDAT in the same session, so long as they are not   mixed in the same transaction.   The local storage size of a message may not accurately reflect the   actual size of the message sent due to local storage conventions.  In   particular, text messages sent with the BDAT command must be sent in   the canonical MIME format with lines delimited with a <CR><LF>.  It   may not be possible to convert the entire message to the canonical   format at once. Chunking provides a mechanism to convert the message   to canonical form, accurately count the bytes, and send the message a   single chunk at a time.      Note that correct byte counting is essential.  If too many bytes      are indicated by the sender SMTP, the receiver SMTP will continue      to wait for the remainder of the data or will read the subsequent      command as additional message data.  In the case where a portion      of the previous command was read as data, the parser will return a      syntax error when the incomplete command is read.Vaudreuil                     Experimental                      [Page 3]RFC 1830           Binary and Large Message Transport        August 1995      If too few bytes are indicated by the sender SMTP, the receiver      SMTP will interpret the remainder of the message data as invalid      commands.  Note that the remainder of the message data may be      binary and as such lexigraphical parsers must be prepared to      receive, process, and reject lines of arbitrary octets.4. Framework for the Binary Service Extension   The following service extension is hereby defined:      1) The name of the binary service extension is "BINARYMIME".      2) The EHLO keyword value associated with this extension is         "BINARYMIME".      3) The BINARYMIME service extension can only be used with         the "CHUNKING" service extension.      4) No parameter is used with the BINARYMIME keyword.      5) One additional parameter to the BODY keyword defined         [8BIT] for the MAIL FROM command is defined, "BINARYMIME".         The value "BINARYMIME" associated with this parameter         indicates that this message is a Binary MIME message (in         strict compliance with [MIME]) with arbitrary octet content         being sent. The revised syntax of the value is as follows,         using the ABNF notation of [RFC822]:         body-value ::= "7BIT" / "8BITMIME" / "BINARYMIME"      6) No new verbs are defined for the BINARYMIME extension.   A sender SMTP may request that a binary MIME message be sent without   transport encoding by sending a BINARYMIME parameter with the MAIL   FROM command.  When the receiver SMTP accepts a MAIL FROM command   with the BINARYMIME body type requested, it agrees to preserve all   bits in each octet passed using the BDAT command.   BINARYMIME cannot be used with the DATA command.  If a DATA command   is issued after a MAIL FROM command containing the body-value of   "BINARYMIME", a 501 response should be sent.  The resulting state   from this error condition is indeterminate and the transaction should   be reset with the RSET command.      It is important to note that when using BINARYMIME, it is      especially important to ensure that the MIME message itself is      properly formed.  In particular, it is essential that text be      canonically encoded with each line properly terminated with <CR>Vaudreuil                     Experimental                      [Page 4]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -