| < draft-newman-lemonade-compose-00.txt | draft-newman-lemonade-compose-01.txt > | |||
|---|---|---|---|---|
| Network Working Group C. Newman | Network Working Group C. Newman | |||
| Internet-Draft Sun Microsystems | Internet-Draft Sun Microsystems | |||
| Expires: December 19, 2003 June 20, 2003 | Expires: August 10, 2004 February 10, 2004 | |||
| Message Composition | Message Submission with Composition | |||
| draft-newman-lemonade-compose-00.txt | draft-newman-lemonade-compose-01.txt | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that other | Task Force (IETF), its areas, and its working groups. Note that other | |||
| groups may also distribute working documents as Internet-Drafts. | groups may also distribute working documents as Internet-Drafts. | |||
| skipping to change at page 1, line 30 ¶ | skipping to change at page 1, line 30 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at http:// | The list of current Internet-Drafts can be accessed at http:// | |||
| www.ietf.org/ietf/1id-abstracts.txt. | www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on December 19, 2003. | This Internet-Draft will expire on August 10, 2004. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
| Abstract | Abstract | |||
| The submission profile of Simple Mail Transfer Protocol (SMTP) | The submission profile of Simple Mail Transfer Protocol (SMTP) | |||
| provides a standard way for an email client to submit a complete | provides a standard way for an email client to submit a complete | |||
| message for delivery. The chunking extension provides a way for a | message for delivery. The chunking extension provides a way for a | |||
| client to compose a message for submission from a series of client | client to compose a message for submission from a series of client | |||
| provided pieces. This specification further extends the chunking | provided pieces. This specification further extends the chunking | |||
| facility so that a client can compose a message from additional | facility so that a client can compose a message from additional | |||
| sources. For example, a client could use this facility to forward a | sources. For example, a client could use this facility to forward a | |||
| message from an IMAP server or forward a web page as an attachment to | message from an IMAP server or forward a web page as an attachment to | |||
| a new message. | a new message. | |||
| Table of Contents | Table of Contents | |||
| 1. Conventions Used in this Document . . . . . . . . . . . . . . 3 | 1. Conventions Used in this Document . . . . . . . . . . . . . . 3 | |||
| 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. BURL Submission Extension . . . . . . . . . . . . . . . . . . 3 | 3. BURL Submission Extension . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1 SMTP Submission Extension Registration . . . . . . . . . . . . 3 | 3.1 SMTP Submission Extension Registration . . . . . . . . . . . . 3 | |||
| 3.2 Composition Transation . . . . . . . . . . . . . . . . . . . . 4 | 3.2 Composition Transaction . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.3 Supported URIs . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.3 Supported URIs . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.4 Transfer Encoding Conversion . . . . . . . . . . . . . . . . . 5 | 3.4 Transfer Encoding Conversion . . . . . . . . . . . . . . . . . 5 | |||
| 3.5 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.5 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.6 Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.6 Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Message Composition for Small Devices . . . . . . . . . . . . 6 | 4. Message Submission with Composition for Small Devices . . . . 6 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| Normative References . . . . . . . . . . . . . . . . . . . . . 7 | 7. Changes from -00 . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| Informative References . . . . . . . . . . . . . . . . . . . . 8 | Normative References . . . . . . . . . . . . . . . . . . . . . 8 | |||
| Informative References . . . . . . . . . . . . . . . . . . . . 9 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . 9 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| Intellectual Property and Copyright Statements . . . . . . . . 10 | Intellectual Property and Copyright Statements . . . . . . . . 10 | |||
| 1. Conventions Used in this Document | 1. Conventions Used in this Document | |||
| The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" | The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" | |||
| in this document are to be interpreted as defined in "Key words for | in this document are to be interpreted as defined in "Key words for | |||
| use in RFCs to Indicate Requirement Levels" [5]. | use in RFCs to Indicate Requirement Levels" [5]. | |||
| The formal syntax use the Augmented Backus-Naur Form (ABNF) [6] | The formal syntax use the Augmented Backus-Naur Form (ABNF) [6] | |||
| skipping to change at page 4, line 21 ¶ | skipping to change at page 4, line 21 ¶ | |||
| fail and the data is consumed, and the BURL commands also fail | fail and the data is consumed, and the BURL commands also fail | |||
| without triggering a fetch of the URL. | without triggering a fetch of the URL. | |||
| 5. This extension adds no new parameters to the MAIL or RCPT verbs. | 5. This extension adds no new parameters to the MAIL or RCPT verbs. | |||
| 6. The BURL verb is used during a CHUNKING SMTP transaction. If the | 6. The BURL verb is used during a CHUNKING SMTP transaction. If the | |||
| argument is a valid URL which the submit server can resolve to a | argument is a valid URL which the submit server can resolve to a | |||
| data object, the submit server will resolve the URL and | data object, the submit server will resolve the URL and | |||
| optionally apply a content-transfer-encoding. | optionally apply a content-transfer-encoding. | |||
| 3.2 Composition Transation | 3.2 Composition Transaction | |||
| When a composition client connects to a composition server, it will | When a composition client connects to a composition server, it will | |||
| first authenticate (using SMTP AUTH and perhaps STARTTLS), and then | first authenticate (using SMTP AUTH and perhaps STARTTLS), and then | |||
| can compose and submit any number of messages with full | can compose and submit any number of messages with full | |||
| interoperabilty with important SMTP extensions such as delivery | interoperability with important SMTP extensions such as delivery | |||
| status notifications [14]. Each message which is composed and | status notifications [14]. Each message which is composed and | |||
| submitted is called a message composition transation. | submitted is called a message composition transaction. | |||
| A message composition transaction will typically consist of a MAIL | A message composition transaction will typically consist of a MAIL | |||
| FROM, one or more RCPT TO headers, an initial BDAT, and an optional | FROM, one or more RCPT TO headers, an initial BDAT, an optional | |||
| series of BURL or BDAT commands, and a BDAT command with the "LAST" | series of BURL or BDAT commands, and a BURL or BDAT command with the | |||
| tag. The client is permitted to pipelined [22] the entire | "LAST" tag. The client is permitted to pipeline [22] the entire | |||
| transaction in one round-trip. However, it must wait for the results | transaction in one round-trip. However, it MUST wait for the results | |||
| of the "LAST" BDAT command prior to initiating a new transaction. | of the "LAST" BDAT or BURL command prior to initiating a new | |||
| transaction. | ||||
| The BURL command directs the server to fetch the data object to which | The BURL command directs the server to fetch the data object to which | |||
| the URL refers, perform any necessary content transfer encoding | the URL refers, perform any necessary content transfer encoding | |||
| conversions on that object and include it in the message. If the URL | conversions on that object and include it in the message. If the URL | |||
| fetch or conversion fails, the server will either fail the entire | fetch or conversion fails, the server will either fail the entire | |||
| transaction (including consuming any subsequent BURL commands in the | transaction (including consuming any subsequent BDAT or BURL commands | |||
| pipeline) or retry the composition later based on the value of the | in the pipeline) or retry the composition later based on the value of | |||
| "failhow" argument to BURL. | the "failhow" argument to BURL. | |||
| 3.3 Supported URIs | 3.3 Supported URIs | |||
| The BURL EHLO keyword arguments list the types of URIs the | The BURL EHLO keyword arguments list the types of URIs the | |||
| composition server can resolve. If it lists just the scheme name, | composition server can resolve. If it lists just the scheme name, | |||
| that indicates the server supports all forms of that URI which refer | that indicates the server supports all forms of that URI which refer | |||
| to a single data object. In the case of IMAP URLs [20], advertising | to a single data object. In the case of IMAP URLs [20], advertising | |||
| the bare scheme name indicates the server also supports the URLAUTH | the bare scheme name indicates the server also supports the URLAUTH | |||
| [23] extended form. | [23] extended form. | |||
| skipping to change at page 5, line 35 ¶ | skipping to change at page 5, line 36 ¶ | |||
| transfer encoding conversion after resolving the URL. | transfer encoding conversion after resolving the URL. | |||
| o The "base64" conversion indicates that if the data was already | o The "base64" conversion indicates that if the data was already | |||
| base64 encoded, it should be left unchanged. Otherwise, any | base64 encoded, it should be left unchanged. Otherwise, any | |||
| content transfer encoding is removed and the result is base64 | content transfer encoding is removed and the result is base64 | |||
| encoded. | encoded. | |||
| o The "8bit" conversion indicates that any content transfer encoding | o The "8bit" conversion indicates that any content transfer encoding | |||
| is removed, lines longer than 998 characters MUST be wrapped onto | is removed, lines longer than 998 characters MUST be wrapped onto | |||
| multiple lines by insertion of a CRLF, NUL octets MUST be dropped, | multiple lines by insertion of a CRLF, NUL octets MUST be dropped, | |||
| and bare newline or bare carrage return MUST be converted to CRLF. | and bare newline or bare carriage return MUST be converted to | |||
| CRLF. | ||||
| o The "none" conversion indicates that the data is unchanged and any | o The "none" conversion indicates that the data is unchanged and any | |||
| original content transfer encoding is left in place. If the | original content transfer encoding is left in place. If the | |||
| server does not advertise BINARYMIME and if the raw data would | server does not advertise BINARYMIME and if the raw data would | |||
| require any changes to be labelled "8bit", then the server MUST | require any changes to be labelled "8bit", then the server MUST | |||
| fail the BURL command. | fail the BURL command. | |||
| o The "binary" conversion is only permitted if the BINARYMIME EHLO | o The "binary" conversion is only permitted if the BINARYMIME EHLO | |||
| keyword was advertised, and indicates any content transfer | keyword was advertised, and indicates any content transfer | |||
| encoding is to be removed and the data is to be included otherwise | encoding is to be removed and the data is to be included otherwise | |||
| skipping to change at page 6, line 19 ¶ | skipping to change at page 6, line 21 ¶ | |||
| 3.6 Formal Syntax | 3.6 Formal Syntax | |||
| The following syntax specification inherits ABNF [6] and Uniform | The following syntax specification inherits ABNF [6] and Uniform | |||
| Resource Identifiers [7]. | Resource Identifiers [7]. | |||
| burl-param = scheme / absoluteURI / trusted-domain | burl-param = scheme / absoluteURI / trusted-domain | |||
| ; parameter to BURL EHLO keyword | ; parameter to BURL EHLO keyword | |||
| burl-cmd = "BURL" SP conversion SP failhow | burl-cmd = "BURL" SP conversion SP failhow | |||
| SP absoluteURI CRLF | SP absoluteURI [SP end-marker] CRLF | |||
| conversion = "base64" / "8bit" / "binary" / "none" | conversion = "base64" / "8bit" / "binary" / "none" | |||
| failhow = "now" / "retry" | failhow = "now" / "retry" | |||
| end-marker = "LAST" | ||||
| trusted-domain = scheme "://" authority | trusted-domain = scheme "://" authority | |||
| 4. Message Composition for Small Devices | 4. Message Submission with Composition for Small Devices | |||
| A Message Submission [8] server is considered to be a compliant | A Message Submission [8] server is considered to be a compliant | |||
| Message Composition server if it implements the following | Message Submission with Composition server if it implements the | |||
| specifications: | following specifications: | |||
| o BURL (Section 3): Mandatory | o BURL (Section 3): Mandatory | |||
| o DSN [14]: Mandatory | o DSN [14]: Mandatory | |||
| o STARTTLS [13]: Mandatory | o STARTTLS [13]: Mandatory | |||
| o CHUNKING [12]: Mandatory | o CHUNKING [12]: Mandatory | |||
| o BINARYMIME [12]: Mandatory | o BINARYMIME [12]: Mandatory | |||
| skipping to change at page 7, line 41 ¶ | skipping to change at page 7, line 46 ¶ | |||
| Implementations which support the URLAUTH [23] form of IMAP URLs MUST | Implementations which support the URLAUTH [23] form of IMAP URLs MUST | |||
| implement both the SMTP STARTTLS [13] and the IMAP STARTTLS [15] | implement both the SMTP STARTTLS [13] and the IMAP STARTTLS [15] | |||
| extensions and MUST have a configuration setting which requires their | extensions and MUST have a configuration setting which requires their | |||
| use with such IMAP URLs. | use with such IMAP URLs. | |||
| When a client uses the SMTP STARTTLS to send a BURL command which | When a client uses the SMTP STARTTLS to send a BURL command which | |||
| references non-public information, the message submission server MUST | references non-public information, the message submission server MUST | |||
| use STARTTLS or a mechanism providing equivalent data privacy when | use STARTTLS or a mechanism providing equivalent data privacy when | |||
| resolving that URL. | resolving that URL. | |||
| 7. Changes from -00 | ||||
| o Added the end-marker "LAST", so this could be used without BDAT | ||||
| and works with a pre-composed message. | ||||
| o Changed "Message Composition" to "Message Submission with | ||||
| Composition" in several places. | ||||
| o Correct Spelling Errors | ||||
| Normative References | Normative References | |||
| [1] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D. Crocker, | [1] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D. Crocker, | |||
| "SMTP Service Extension for 8bit-MIMEtransport", RFC 1652, July | "SMTP Service Extension for 8bit-MIMEtransport", RFC 1652, July | |||
| 1994. | 1994. | |||
| [2] Klensin, J., Freed, N. and K. Moore, "SMTP Service Extension | [2] Klensin, J., Freed, N. and K. Moore, "SMTP Service Extension | |||
| for Message Size Declaration", STD 10, RFC 1870, November 1995. | for Message Size Declaration", STD 10, RFC 1870, November 1995. | |||
| [3] Freed, N., "SMTP Service Extension for Returning Enhanced Error | [3] Freed, N., "SMTP Service Extension for Returning Enhanced Error | |||
| skipping to change at page 10, line 29 ¶ | skipping to change at page 10, line 29 ¶ | |||
| be obtained from the IETF Secretariat. | be obtained from the IETF Secretariat. | |||
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
| rights which may cover technology that may be required to practice | rights which may cover technology that may be required to practice | |||
| this standard. Please address the information to the IETF Executive | this standard. Please address the information to the IETF Executive | |||
| Director. | Director. | |||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (2003). All Rights Reserved. | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
| This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
| others, and derivative works that comment on or otherwise explain it | others, and derivative works that comment on or otherwise explain it | |||
| or assist in its implementation may be prepared, copied, published | or assist in its implementation may be prepared, copied, published | |||
| and distributed, in whole or in part, without restriction of any | and distributed, in whole or in part, without restriction of any | |||
| kind, provided that the above copyright notice and this paragraph are | kind, provided that the above copyright notice and this paragraph are | |||
| included on all such copies and derivative works. However, this | included on all such copies and derivative works. However, this | |||
| document itself may not be modified in any way, such as by removing | document itself may not be modified in any way, such as by removing | |||
| the copyright notice or references to the Internet Society or other | the copyright notice or references to the Internet Society or other | |||
| Internet organizations, except as needed for the purpose of | Internet organizations, except as needed for the purpose of | |||
| skipping to change at page 11, line 7 ¶ | skipping to change at page 11, line 7 ¶ | |||
| The limited permissions granted above are perpetual and will not be | The limited permissions granted above are perpetual and will not be | |||
| revoked by the Internet Society or its successors or assignees. | revoked by the Internet Society or its successors or assignees. | |||
| This document and the information contained herein is provided on an | This document and the information contained herein is provided on an | |||
| "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | |||
| TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | |||
| BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | |||
| HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | |||
| MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Acknowledgement | Acknowledgment | |||
| Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
| Internet Society. | Internet Society. | |||
| End of changes. 20 change blocks. | ||||
| 27 lines changed or deleted | 42 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||