home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2442.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  18.4 KB  |  508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         N. Freed
  8. Request for Comments: 2442                                   D. Newman
  9. Category: Informational                                       Innosoft
  10.                                                           J. Belissent
  11.                                                       Sun Microsystems
  12.                                                                 M. Hoy
  13.                                                              Mainbrace
  14.                                                          November 1998
  15.  
  16.  
  17.                                   The
  18.                                Batch SMTP
  19.                                Media Type
  20.  
  21. Status of this Memo
  22.  
  23.    This memo provides information for the Internet community.  It does
  24.    not specify an Internet standard of any kind.  Distribution of this
  25.    memo is unlimited.
  26.  
  27. Copyright Notice
  28.  
  29.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  30.  
  31. Abstract
  32.  
  33.    This document defines a MIME content type suitable for tunneling an
  34.    ESMTP [RFC-821, RFC-1869] transaction through any MIME-capable
  35.    transport.  This type can be used for a variety of purposes,
  36.    including:  Extending end-to-end MIME-based security services (e.g.,
  37.    [RFC-1847]) to cover message envelope information as well as message
  38.    content.  Making it possible to use specific SMTP extensions such as
  39.    NOTARY [RFC-1891] over unextended SMTP transport infrastructure.
  40.    Enabling the transfer of multiple separate messages in a single
  41.    transactional unit.
  42.  
  43. Requirements Notation
  44.  
  45.    This document occasionally uses terms that appear in capital letters.
  46.    When the terms "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
  47.    appear capitalized, they are being used to indicate particular
  48.    requirements of this specification. A discussion of the meanings of
  49.    the terms "MUST", "SHOULD", and "MAY" appears in [RFC-1123]; the
  50.    terms "MUST NOT" and "SHOULD NOT" are logical extensions of this
  51.    usage.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Freed, et. al.               Informational                      [Page 1]
  59.  
  60. RFC 2442                 Batch SMTP Media Type             November 1998
  61.  
  62.  
  63. The Application/batch-SMTP Content Type
  64.  
  65.    The "application/batch-SMTP" MIME content type is a container for the
  66.    client side of an SMTP or ESMTP transaction. In keeping with
  67.    traditional SMTP, the contents are line oriented and CRLF line
  68.    terminators MUST be used.
  69.  
  70.    The "application/batch-SMTP" type is defined as follows:
  71.  
  72.       Media type name: application
  73.       Media subtype name: batch-SMTP
  74.       Required parameters: none
  75.       Optional parameters: required-extensions
  76.       Encoding considerations:
  77.         8bit material may appear, so quoted-printable or base64
  78.         encoding may be necessary on transports that do not
  79.         support 8bit. While the content of this type is
  80.         line-oriented and uses conventional CR/LF terminators,
  81.         lines longer than 7bit and 8bit encodings allow (998
  82.         octets) may appear, hence quoted-printable or
  83.         base64 encoding may be necessary even in conjunction
  84.         with 8bit transports.
  85.       Security considerations:
  86.         Discussed in the Security Considerations Section.
  87.  
  88. How application/batch-SMTP is used
  89.  
  90.    The following diagram illustrates how the application/batch-SMTP type
  91.    is intended to be used:
  92.  
  93.                     application/batch-SMTP object
  94.                          +----------------+
  95.                          |                |
  96.            +-----------+ v  +----------+  v +-----------+
  97.            | batch     |    | MIME-    |    | batch     |
  98.         => | SMTP      | => | capable  | => | SMTP      | =>
  99.            | generator |    |transport |    | processor |
  100.         ^  +-----------+    +----------+    +-----------+  ^
  101.         |                                                  |
  102.         +-- conventional SMTP/RFC822 message transaction --+
  103.  
  104.    A conventional SMTP message transaction is converted into an
  105.    application/batch-SMTP object by the batch SMTP generator. This
  106.    object is then carried over some type of MIME-capable transport. Once
  107.    the destination is reached the object is presented to a batch SMTP
  108.    processor, which converts the application/batch-SMTP object back into
  109.    a conventional SMTP message transaction.
  110.  
  111.  
  112.  
  113.  
  114. Freed, et. al.               Informational                      [Page 2]
  115.  
  116. RFC 2442                 Batch SMTP Media Type             November 1998
  117.  
  118.  
  119. Generation of application/batch-SMTP material
  120.  
  121.    Application/batch-SMTP material is generated by a specially modified
  122.    SMTP client operating without a corresponding SMTP server. The client
  123.    simply assumes a successful response to all commands it issues. The
  124.    resulting content then consists of the collected output from the SMTP
  125.    client.
  126.  
  127. Honoring SMTP restrictions
  128.  
  129.    Most batch SMTP processors will be constructed by modifying and
  130.    extending existing SMTP servers. As such, all of the restrictions on
  131.    SMTP constructs imposed by RFC 821, RFC 1123, and RFC 1869 MUST be
  132.    observed. In particular, restrictions on command and data line
  133.    lengths, number of recipients, and so on still exist and apply to
  134.    batch SMTP.
  135.  
  136. Use of SMTP Extensions
  137.  
  138.    Since no SMTP server is present the client must be prepared to make
  139.    certain assumptions about which SMTP extensions can be used. The
  140.    generator MAY assume that ESMTP [RFC-1869] facilities are available,
  141.    that is, it is acceptable to use the EHLO command and additional
  142.    parameters on MAIL FROM and RCPT TO.  If EHLO is used MAY assume that
  143.    the 8bitMIME [RFC-1652], SIZE [RFC-1870], and NOTARY [RFC-1891]
  144.    extensions are available. In particular, NOTARY SHOULD be used.  MAY
  145.    create private bilateral agreements which specify the availability of
  146.    additional SMTP extensions. Additional SMTP extensions MUST NOT be
  147.    used in the absence of such an agreement, and, perhaps more
  148.    importantly, a conformant generation of application/batch-SMTP
  149.    objects MUST be able to produce objects restricted to use of the
  150.    extensions listed above.
  151.  
  152.    The "required-extensions" content type parameter MAY be used to
  153.    communicate a list of the extensions actually used, specified as a
  154.    comma-separated list of EHLO responses. If absent it defaults to the
  155.    list "8bitMIME,SIZE,NOTARY".  Any use by private bilateral agreement
  156.    of additional or different extensions MUST be noted in the
  157.    "required-extensions" parameter.
  158.  
  159.    Note that many SMTP extensions simply do not make sense in the
  160.    context of batch SMTP. For example, the pipelining extension [RFC-
  161.    2197] makes no sense in the absence of a network connection.
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Freed, et. al.               Informational                      [Page 3]
  171.  
  172. RFC 2442                 Batch SMTP Media Type             November 1998
  173.  
  174.  
  175. Handling Multiple Messages
  176.  
  177.    Generators SHOULD attempt to minimize the number of messages placed
  178.    in a single application/batch-SMTP object. Ideally a single
  179.    application/batch-SMTP object will be created for each message. Note,
  180.    however, that some uses of application/batch-SMTP (e.g., mail
  181.    bagging) may exist solely to take advantage of the multiple messages
  182.    in a single container capability of batch SMTP, so requiring one
  183.    message per container is not possible.
  184.  
  185.    DISCUSSION: The SMTP protocol provides for the transfer of a series
  186.    of messages over a single connection. This extends in a natural way
  187.    to batch SMTP.  However, the issues in batch SMTP are somewhat
  188.    different. Suppose, for example, that a batch SMTP processor receives
  189.    an application/batch-SMTP object containing two messages but is
  190.    unable to process the second message because of a storage allocation
  191.    failure. But suppose that not only does this failure preclude
  192.    processing of the second message, it also precludes recording that
  193.    the first message has already been processed. Subsequent reprocessing
  194.    of the application/batch-SMTP could then lead to duplication of the
  195.    first message.
  196.  
  197.    This issue is not materially different from the well-known problems
  198.    with SMTP synchronization that in practice often lead to duplicated
  199.    messages. Since this behavior is inherent in SMTP to begin with it is
  200.    not incumbent on application/batch-SMTP to completely address the
  201.    issue. Nevertheless, it seems prudent for application/batch-SMTP to
  202.    try and not make matters even worse.
  203.  
  204. Transport of application/batch-SMTP objects
  205.  
  206.    Application/batch-SMTP objects may be transported by any transport
  207.    capable of preserving their MIME labelling, e.g., HTTP or SMTP.
  208.  
  209.    Transports MUST remain cognizant of the special nature of
  210.    application/batch-SMTP. An application/batch-SMTP object contains one
  211.    or more "frozen" SMTP message transactions. SMTP message transactions
  212.    typically carry with them various assumptions about quality of
  213.    service, e.g., that messages will either be delivered successfully or
  214.    a nondelivery notification will be returned, that a nondelivery
  215.    notification will be returned if delivery cannot be accomplished in a
  216.    timely fashion, and so on. It is vital that the encapsulation of
  217.    these objects for carriage over other forms of transport not
  218.    interfere with these capabilities.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Freed, et. al.               Informational                      [Page 4]
  227.  
  228. RFC 2442                 Batch SMTP Media Type             November 1998
  229.  
  230.  
  231. Processing of application/batch-SMTP material
  232.  
  233.    Processing of application/batch-SMTP material is considerably more
  234.    complex than generating it. As might be expected, a modified
  235.    SMTP/ESMTP processor is used.  However, since it cannot return
  236.    information to the client, it must handle all error conditions that
  237.    arise itself. In other words, a batch SMTP processor assumes both the
  238.    responsibilities of a traditional SMTP server as well as part of the
  239.    responsibilities of a traditional SMTP client.
  240.  
  241.    As such, a conforming processor:  MUST check MIME content type
  242.    information to insure that the material it has been presented with is
  243.    labelled as application/batch-SMTP and doesn't specify any extensions
  244.    the processor doesn't support in the "required-extensions" parameter.
  245.    Application/batch-SMTP objects that employ an unsupported extension
  246.    SHOULD be forwarded to the local postmaster for manual inspection and
  247.    handling.  MUST accept any syntactically valid EHLO or HELO command.
  248.    MUST accept any syntactically valid MAIL FROM command. A conforming
  249.    processor, MAY, if it so desires, note the unacceptability of some
  250.    part of a given MAIL FROM command and use this information to
  251.    subsequently generate non-delivery notifications for any or all
  252.    recipients.  MUST accept any syntactically valid RCPT TO command. A
  253.    conforming processor SHOULD note the unacceptability of some part of
  254.    a given RCPT TO command and subsequently use this information to
  255.    generate a non-delivery notification for this recipient in lieu of
  256.    actually delivering the message.  MUST accept any of the additional
  257.    parameters defined by the 8bitMIME, SIZE, and NOTARY SMTP extensions
  258.    on the MAIL FROM and RCPT TO commands.  MUST accept the DATA command
  259.    even when no valid recipients are present. 8bit MIME messages MUST be
  260.    accepted.  MUST accept the RSET command and handle multiple messages
  261.    in a single application/batch-SMTP object. Processors MUST process
  262.    each message in an application/batch-SMTP object once and SHOULD take
  263.    whatever steps are necessary to avoid processing a message more than
  264.    once. For example, if processing of an application/batch-SMTP object
  265.    containing multiple messages is interrupted at an intermediate point
  266.    it should subsequently be restarted at the end of the last message
  267.    that was completely processed.  SHOULD forward any syntactically
  268.    invalid application/batch-SMTP message to the local postmaster for
  269.    manual inspection and handling.
  270.  
  271. Security Considerations
  272.  
  273.    Application/batch-SMTP implements a tunneling mechanism. In general
  274.    tunneling mechanisms are prone to abuse because they may provide a
  275.    means of bypassing existing security restrictions. For example, an
  276.    application/batch-SMTP tunnel implemented over an existing SMTP
  277.    transport may allow someone to bypass relay restrictions imposed to
  278.    block redistribution of spam.
  279.  
  280.  
  281.  
  282. Freed, et. al.               Informational                      [Page 5]
  283.  
  284. RFC 2442                 Batch SMTP Media Type             November 1998
  285.  
  286.  
  287.    Application/batch-SMTP processors SHOULD implement access
  288.    restrictions designed to limit access to the processor to authorized
  289.    generators only. (Note that this facility may be provided
  290.    automatically if application/batch-SMTP is being used to secure
  291.    message envelope information.)
  292.  
  293. Acknowledgements
  294.  
  295.    The general concept of batch SMTP has been around for a long time.
  296.    One particular type of batch SMTP was defined by Alan Crosswell and
  297.    used on BITNET to overcome BITNET's native 8 character limit on user
  298.    and host names. However, this form of batch SMTP differed from the
  299.    current proposal in that it envisioned having the server return the
  300.    status code responses to the client. In this case the client bore the
  301.    burden of correlating responses with the original SMTP dialogue after
  302.    the fact.
  303.  
  304.    Unfortunately this approach proved not to work well in practice.
  305.    BITNET eventually switched to the same basic form of batch SMTP that
  306.    has been defined here. Unfortunately that definition was, to the best
  307.    of the present authors' knowledge, never captured in a formal
  308.    specification. It should also be noted that the definition given here
  309.    also differs in that it takes SMTP extensions into account.
  310.  
  311.    Einar Stefferud had previously considered the problem of carrying
  312.    extended SMTP messages over unextended SMTP transports. He proposed
  313.    that some form of "double enveloping" technology be developed to
  314.    address this problem. The mechanism presented here effectively
  315.    implements the type of solution he proposed.
  316.  
  317. References
  318.  
  319.    [RFC-821]  Postel, J., "Simple Mail Transfer Protocol", STD 10,
  320.               RFC 821, August 1982.
  321.  
  322.    [RFC-822]  Crocker, D., "Standard for the Format of ARPA Internet
  323.               Text Messages", STD 11, RFC 822 August 1982.
  324.  
  325.    [RFC-1123] Braden, B., "Requirements for Internet Hosts --
  326.               Application and Support", STD 3, RFC 1123, October 1989.
  327.  
  328.    [RFC-1652] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D.
  329.               Crocker, "SMTP Service Extension for 8bit-MIMEtransport",
  330.               RFC 1652, July 1994.
  331.  
  332.    [RFC-1847] Galvin, J., Murphy, S., Crocker, S. and N. Freed,
  333.               "Security Multiparts for MIME:  Multipart/Signed and
  334.               Multipart/Encrypted", RFC 1847, October 1995.
  335.  
  336.  
  337.  
  338. Freed, et. al.               Informational                      [Page 6]
  339.  
  340. RFC 2442                 Batch SMTP Media Type             November 1998
  341.  
  342.  
  343.    [RFC-1869] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D.
  344.               Crocker, "SMTP Service Extensions", STD 10, RFC 1869,
  345.               November 1995.
  346.  
  347.    [RFC-1870] Klensin, J., Freed, N., Moore, K., "SMTP Service Extension
  348.               for Message Size Declaration", STD 10, RFC 1870, November,
  349.               1995.
  350.  
  351.    [RFC-2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
  352.               Extensions (MIME) Part One: Format of Internet Message
  353.               Bodies", RFC 2045, December 1996.
  354.  
  355.    [RFC-2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
  356.               Extensions (MIME) Part Two: Media Types", RFC 2046,
  357.               December 1996.
  358.  
  359.    [RFC-2197] Freed, N. and A. Cargille, "SMTP Service Extension for
  360.               Command Pipelining", RFC 2197, September 1997.
  361.  
  362.  
  363. Authors' Addresses
  364.  
  365.    Ned Freed
  366.    Innosoft International, Inc.
  367.    1050 Lakes Drive
  368.    West Covina, CA 91790
  369.    USA
  370.  
  371.    Phone: +1 626 919 3600
  372.    Fax:   +1 626 919 3614
  373.    EMail: ned.freed@innosoft.com
  374.  
  375.  
  376.    Dan Newman
  377.    Innosoft International, Inc.
  378.    1050 Lakes Drive
  379.    West Covina, CA 91790
  380.    USA
  381.  
  382.    Phone: +1 626 919 3600
  383.    Fax:   +1 626 919 3614
  384.    EMail: dan.newman@innosoft.com
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Freed, et. al.               Informational                      [Page 7]
  395.  
  396. RFC 2442                 Batch SMTP Media Type             November 1998
  397.  
  398.  
  399.    Mark Hoy
  400.    Mainbrace Corporation
  401.    1136 West Evelyn Avenue
  402.    Sunnyvale, CA 94086
  403.  
  404.    tel: +1 408 774 5265
  405.    fax: +1 408 774 5290
  406.    email: mark.hoy@mainbrace.com
  407.  
  408.  
  409.    Jacques Bellisent
  410.    SunSoft
  411.  
  412.    Phone: +1 650 786 3630
  413.    EMail: jacques.belissent@eng.sun.com
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Freed, et. al.               Informational                      [Page 8]
  451.  
  452. RFC 2442                 Batch SMTP Media Type             November 1998
  453.  
  454.  
  455. Full Copyright Statement
  456.  
  457.    Copyright (C) The Internet Society (1998). All Rights Reserved.
  458.  
  459.    This document and translations of it may be copied and furnished  to
  460.    others, and derivative works that comment on or otherwise  explain it
  461.    or assist in its implementation may be prepared, copied,  published
  462.    and distributed, in whole or in part, without  restriction of any
  463.    kind, provided that the above copyright notice  and this paragraph
  464.    are included on all such copies and derivative  works.  However, this
  465.    document itself may not be modified in any  way, such as by removing
  466.    the copyright notice or references to the  Internet Society or other
  467.    Internet organizations, except as needed for the purpose of
  468.    developing Internet standards in which case the  procedures for
  469.    copyrights defined in the Internet Standards  process must be
  470.    followed, or as required to translate it into languages other than
  471.    English.
  472.  
  473.    The limited permissions granted above are perpetual and will not be
  474.    revoked by the Internet Society or its successors or assigns.
  475.  
  476.    This document and the information contained herein is provided on  an
  477.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET  ENGINEERING
  478.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR  IMPLIED, INCLUDING
  479.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF  THE INFORMATION
  480.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  481.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Freed, et. al.               Informational                      [Page 9]
  507.  
  508.