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

📄 rfc2046.txt

📁 C/C++语言的CGI接口库
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   data.  Alternate algorithms might result in more "readable" boundary   delimiters for a recipient with an old user agent, but would require   more attention to the possibility that the boundary delimiter might   appear at the beginning of some line in the encapsulated part.  The   simplest boundary delimiter line possible is something like "---",   with a closing boundary delimiter line of "-----".   As a very simple example, the following multipart message has two   parts, both of them plain text, one of them explicitly typed and one   of them implicitly typed:     From: Nathaniel Borenstein <nsb@bellcore.com>     To: Ned Freed <ned@innosoft.com>     Date: Sun, 21 Mar 1993 23:56:48 -0800 (PST)     Subject: Sample message     MIME-Version: 1.0     Content-type: multipart/mixed; boundary="simple boundary"     This is the preamble.  It is to be ignored, though it     is a handy place for composition agents to include an     explanatory note to non-MIME conformant readers.     --simple boundary     This is implicitly typed plain US-ASCII text.     It does NOT end with a linebreak.     --simple boundary     Content-type: text/plain; charset=us-ascii     This is explicitly typed plain US-ASCII text.     It DOES end with a linebreak.     --simple boundary--     This is the epilogue.  It is also to be ignored.Freed & Borenstein          Standards Track                    [Page 21]RFC 2046                      Media Types                  November 1996   The use of a media type of "multipart" in a body part within another   "multipart" entity is explicitly allowed.  In such cases, for obvious   reasons, care must be taken to ensure that each nested "multipart"   entity uses a different boundary delimiter.  See RFC 2049 for an   example of nested "multipart" entities.   The use of the "multipart" media type with only a single body part   may be useful in certain contexts, and is explicitly permitted.   NOTE: Experience has shown that a "multipart" media type with a   single body part is useful for sending non-text media types.  It has   the advantage of providing the preamble as a place to include   decoding instructions.  In addition, a number of SMTP gateways move   or remove the MIME headers, and a clever MIME decoder can take a good   guess at multipart boundaries even in the absence of the Content-Type   header and thereby successfully decode the message.   The only mandatory global parameter for the "multipart" media type is   the boundary parameter, which consists of 1 to 70 characters from a   set of characters known to be very robust through mail gateways, and   NOT ending with white space. (If a boundary delimiter line appears to   end with white space, the white space must be presumed to have been   added by a gateway, and must be deleted.)  It is formally specified   by the following BNF:     boundary := 0*69<bchars> bcharsnospace     bchars := bcharsnospace / " "     bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /                      "+" / "_" / "," / "-" / "." /                      "/" / ":" / "=" / "?"   Overall, the body of a "multipart" entity may be specified as   follows:     dash-boundary := "--" boundary                      ; boundary taken from the value of                      ; boundary parameter of the                      ; Content-Type field.     multipart-body := [preamble CRLF]                       dash-boundary transport-padding CRLF                       body-part *encapsulation                       close-delimiter transport-padding                       [CRLF epilogue]Freed & Borenstein          Standards Track                    [Page 22]RFC 2046                      Media Types                  November 1996     transport-padding := *LWSP-char                          ; Composers MUST NOT generate                          ; non-zero length transport                          ; padding, but receivers MUST                          ; be able to handle padding                          ; added by message transports.     encapsulation := delimiter transport-padding                      CRLF body-part     delimiter := CRLF dash-boundary     close-delimiter := delimiter "--"     preamble := discard-text     epilogue := discard-text     discard-text := *(*text CRLF) *text                     ; May be ignored or discarded.     body-part := MIME-part-headers [CRLF *OCTET]                  ; Lines in a body-part must not start                  ; with the specified dash-boundary and                  ; the delimiter must not appear anywhere                  ; in the body part.  Note that the                  ; semantics of a body-part differ from                  ; the semantics of a message, as                  ; described in the text.     OCTET := <any 0-255 octet value>   IMPORTANT:  The free insertion of linear-white-space and RFC 822   comments between the elements shown in this BNF is NOT allowed since   this BNF does not specify a structured header field.   NOTE:  In certain transport enclaves, RFC 822 restrictions such as   the one that limits bodies to printable US-ASCII characters may not   be in force. (That is, the transport domains may exist that resemble   standard Internet mail transport as specified in RFC 821 and assumed   by RFC 822, but without certain restrictions.) The relaxation of   these restrictions should be construed as locally extending the   definition of bodies, for example to include octets outside of the   US-ASCII range, as long as these extensions are supported by the   transport and adequately documented in the Content- Transfer-Encoding   header field.  However, in no event are headers (either message   headers or body part headers) allowed to contain anything other than   US-ASCII characters.Freed & Borenstein          Standards Track                    [Page 23]RFC 2046                      Media Types                  November 1996   NOTE:  Conspicuously missing from the "multipart" type is a notion of   structured, related body parts. It is recommended that those wishing   to provide more structured or integrated multipart messaging   facilities should define subtypes of multipart that are syntactically   identical but define relationships between the various parts. For   example, subtypes of multipart could be defined that include a   distinguished part which in turn is used to specify the relationships   between the other parts, probably referring to them by their   Content-ID field.  Old implementations will not recognize the new   subtype if this approach is used, but will treat it as   multipart/mixed and will thus be able to show the user the parts that   are recognized.5.1.2.  Handling Nested Messages and Multiparts   The "message/rfc822" subtype defined in a subsequent section of this   document has no terminating condition other than running out of data.   Similarly, an improperly truncated "multipart" entity may not have   any terminating boundary marker, and can turn up operationally due to   mail system malfunctions.   It is essential that such entities be handled correctly when they are   themselves imbedded inside of another "multipart" structure.  MIME   implementations are therefore required to recognize outer level   boundary markers at ANY level of inner nesting.  It is not sufficient   to only check for the next expected marker or other terminating   condition.5.1.3.  Mixed Subtype   The "mixed" subtype of "multipart" is intended for use when the body   parts are independent and need to be bundled in a particular order.   Any "multipart" subtypes that an implementation does not recognize   must be treated as being of subtype "mixed".5.1.4.  Alternative Subtype   The "multipart/alternative" type is syntactically identical to   "multipart/mixed", but the semantics are different.  In particular,   each of the body parts is an "alternative" version of the same   information.   Systems should recognize that the content of the various parts are   interchangeable.  Systems should choose the "best" type based on the   local environment and references, in some cases even through user   interaction.  As with "multipart/mixed", the order of body parts is   significant.  In this case, the alternatives appear in an order of   increasing faithfulness to the original content.  In general, theFreed & Borenstein          Standards Track                    [Page 24]RFC 2046                      Media Types                  November 1996   best choice is the LAST part of a type supported by the recipient   system's local environment.   "Multipart/alternative" may be used, for example, to send a message   in a fancy text format in such a way that it can easily be displayed   anywhere:     From: Nathaniel Borenstein <nsb@bellcore.com>     To: Ned Freed <ned@innosoft.com>     Date: Mon, 22 Mar 1993 09:41:09 -0800 (PST)     Subject: Formatted text mail     MIME-Version: 1.0     Content-Type: multipart/alternative; boundary=boundary42     --boundary42     Content-Type: text/plain; charset=us-ascii       ... plain text version of message goes here ...     --boundary42     Content-Type: text/enriched       ... RFC 1896 text/enriched version of same message           goes here ...     --boundary42     Content-Type: application/x-whatever       ... fanciest version of same message goes here ...     --boundary42--   In this example, users whose mail systems understood the   "application/x-whatever" format would see only the fancy version,   while other users would see only the enriched or plain text version,   depending on the capabilities of their system.   In general, user agents that compose "multipart/alternative" entities   must place the body parts in increasing order of preference, that is,   with the preferred format last.  For fancy text, the sending user   agent should put the plainest format first and the richest format   last.  Receiving user agents should pick and display the last format   they are capable of displaying.  In the case where one of the   alternatives is itself of type "multipart" and contains unrecognized   sub-parts, the user agent may choose either to show that alternative,   an earlier alternative, or both.Freed & Borenstein          Standards Track                    [Page 25]RFC 2046                      Media Types                  November 1996   NOTE: From an implementor's perspective, it might seem more sensible   to reverse this ordering, and have the plainest alternative last.   However, placing the plainest alternative first is the friendliest   possible option when "multipart/alternative" entities are viewed   using a non-MIME-conformant viewer.  While this approach does impose   some burden on conformant MIME viewers, interoperability with older   mail readers was deemed to be more important in this case.   It may be the case that some user agents, if they can recognize more   than one of the formats, will pr

⌨️ 快捷键说明

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