📄 rfc4468.txt
字号:
Network Working Group C. NewmanRequest for Comments: 4468 Sun MicrosystemsUpdates: 3463 May 2006Category: Standards Track Message Submission BURL ExtensionStatus of This Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.Copyright Notice Copyright (C) The Internet Society (2006).Abstract The submission profile of Simple Mail Transfer Protocol (SMTP) provides a standard way for an email client to submit a complete message for delivery. This specification extends the submission profile by adding a new BURL command that can be used to fetch submission data from an Internet Message Access Protocol (IMAP) server. This permits a mail client to inject content from an IMAP server into the SMTP infrastructure without downloading it to the client and uploading it back to the server.Newman Standards Track [Page 1]RFC 4468 Message Submission BURL Extension May 2006Table of Contents 1. Introduction ....................................................2 2. Conventions Used in This Document ...............................2 3. BURL Submission Extension .......................................3 3.1. SMTP Submission Extension Registration .....................3 3.2. BURL Transaction ...........................................3 3.3. The BURL IMAP Options ......................................4 3.4. Examples ...................................................5 3.5. Formal Syntax ..............................................6 4. 8-Bit and Binary ................................................7 5. Updates to RFC 3463 .............................................7 6. Response Codes ..................................................7 7. IANA Considerations .............................................9 8. Security Considerations .........................................9 9. References .....................................................11 9.1. Normative References ......................................11 9.2. Informative References ....................................12 Appendix A. Acknowledgements .....................................131. Introduction This specification defines an extension to the standard Message Submission [RFC4409] protocol to permit data to be fetched from an IMAP server at message submission time. This MAY be used in conjunction with the CHUNKING [RFC3030] mechanism so that chunks of the message can come from an external IMAP server. This provides the ability to forward an email message without first downloading it to the client.2. Conventions Used in This Document The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as defined in "Key words for use in RFCs to Indicate Requirement Levels" [RFC2119]. The formal syntax uses the Augmented Backus-Naur Form (ABNF) [RFC4234] notation including the core rules defined in Appendix B of RFC 4234.Newman Standards Track [Page 2]RFC 4468 Message Submission BURL Extension May 20063. BURL Submission Extension This section defines the BURL submission extension.3.1. SMTP Submission Extension Registration 1. The name of this submission extension is "BURL". This extends the Message Submission protocol on port 587 and MUST NOT be advertised by a regular SMTP [RFC2821] server on port 25 that acts as a relay for incoming mail from other SMTP relays. 2. The EHLO keyword value associated with the extension is "BURL". 3. The BURL EHLO keyword will have zero or more arguments. The only argument defined at this time is the "imap" argument, which MUST be present in order to use IMAP URLs with BURL. Clients MUST ignore other arguments after the BURL EHLO keyword unless they are defined by a subsequent IETF standards track specification. The arguments that appear after the BURL EHLO keyword may change subsequent to the use of SMTP AUTH [RFC2554], so a server that advertises BURL with no arguments prior to authentication indicates that BURL is supported but authentication is required to use it. 4. This extension adds the BURL SMTP verb. This verb is used as a replacement for the DATA command and is only permitted during a mail transaction after at least one successful RCPT TO.3.2. BURL Transaction A simple BURL transaction will consist of MAIL FROM, one or more RCPT TO headers, and a BURL command with the "LAST" tag. The BURL command will include an IMAP URL pointing to a fully formed message ready for injection into the SMTP infrastructure. If PIPELINING [RFC2920] is advertised, the client MAY send the entire transaction in one round trip. If no valid RCPT TO address is supplied, the BURL command will simply fail, and no resolution of the BURL URL argument will be performed. If at least one valid RCPT TO address is supplied, then the BURL URL argument will be resolved before the server responds to the command. A more sophisticated BURL transaction MAY occur when the server also advertises CHUNKING [RFC3030]. In this case, the BURL and BDAT commands may be interleaved until one of them terminates the transaction with the "LAST" argument. If PIPELINING [RFC2920] is also advertised, then the client may pipeline the entire transaction in one round-trip. However, it MUST wait for the results of the "LAST" BDAT or BURL command prior to initiating a new transaction.Newman Standards Track [Page 3]RFC 4468 Message Submission BURL Extension May 2006 The BURL command directs the server to fetch the data object to which the URL refers and include it in the message. If the URL fetch fails, the server will fail the entire transaction.3.3. The BURL IMAP Options When "imap" is present in the space-separated list of arguments following the BURL EHLO keyword, it indicates that the BURL command supports the URLAUTH [RFC4467] extended form of IMAP URLs [RFC2192] and that the submit server is configured with the necessary credentials to resolve "urlauth=submit+" IMAP URLs for the submit server's domain. Subsequent to a successful SMTP AUTH command, the submission server MAY indicate a prearranged trust relationship with a specific IMAP server by including a BURL EHLO keyword argument of the form "imap://imap.example.com". In this case, the submission server will permit a regular IMAP URL referring to messages or parts of messages on imap.example.com that the user who authenticated to the submit server can access. Note that this form does not imply that the submit server supports URLAUTH URLs; the submit server must advertise both "imap" and "imap://imap.example.com" to indicate support for both extended and non-extended URL forms. When the submit server connects to the IMAP server, it acts as an IMAP client and thus is subject to both the mandatory-to-implement IMAP capabilities in Section 6.1.1 of RFC 3501, and the security considerations in Section 11 of RFC 3501. Specifically, this requires that the submit server implement a configuration that uses STARTTLS followed by SASL PLAIN [SASL-PLAIN] to authenticate to the IMAP server. When the submit server resolves a URLAUTH IMAP URL, it uses submit server credentials when authenticating to the IMAP server. The authentication identity and password used for submit credentials MUST be configurable. The string "submit" is suggested as a default value for the authentication identity, with no default for the password. Typically, the authorization identity is empty in this case; thus the IMAP server will derive the authorization identity from the authentication identity. If the IMAP URL uses the "submit+" access identifier prefix, the submit server MUST refuse the BURL command unless the userid in the URL's <access> token matches the submit client's authorization identity. When the submit server resolves a regular IMAP URL, it uses the submit client's authorization identity when authenticating to the IMAP server. If both the submit client and the submit server's embedded IMAP client use SASL PLAIN (or the equivalent), the submitNewman Standards Track [Page 4]RFC 4468 Message Submission BURL Extension May 2006 server SHOULD forward the client's credentials if and only if the submit server knows that the IMAP server is in the same administrative domain. If the submit server supports SASL mechanisms other than PLAIN, it MUST implement a configuration in which the submit server's embedded IMAP client uses STARTTLS and SASL PLAIN with the submit server's authentication identity and password (for the respective IMAP server) and the submit client's authorization identity.3.4. Examples In examples, "C:" and "S:" indicate lines sent by the client and server, respectively. If a single "C:" or "S:" label applies to multiple lines, then the line breaks between those lines are for editorial clarity only and are not part of the actual protocol exchange. Two successful submissions (without and with pipelining) follow: <SSL/TLS encryption layer negotiated> C: EHLO potter.example.com S: 250-owlry.example.com S: 250-8BITMIME S: 250-BURL imap S: 250-AUTH PLAIN S: 250-DSN S: 250 ENHANCEDSTATUSCODES C: AUTH PLAIN aGFycnkAaGFycnkAYWNjaW8= S: 235 2.7.0 PLAIN authentication successful. C: MAIL FROM:<harry@gryffindor.example.com> S: 250 2.5.0 Address Ok. C: RCPT TO:<ron@gryffindor.example.com> S: 250 2.1.5 ron@gryffindor.example.com OK. C: BURL imap://harry@gryffindor.example.com/outbox ;uidvalidity=1078863300/;uid=25;urlauth=submit+harry :internal:91354a473744909de610943775f92038 LAST S: 250 2.5.0 Ok. <SSL/TLS encryption layer negotiated> C: EHLO potter.example.com S: 250-owlry.example.com S: 250-8BITMIME S: 250-PIPELINING S: 250-BURL imap S: 250-AUTH PLAIN S: 250-DSN S: 250 ENHANCEDSTATUSCODES C: AUTH PLAIN aGFycnkAaGFycnkAYWNjaW8=Newman Standards Track [Page 5]RFC 4468 Message Submission BURL Extension May 2006 C: MAIL FROM:<harry@gryffindor.example.com> C: RCPT TO:<ron@gryffindor.example.com> C: BURL imap://harry@gryffindor.example.com/outbox ;uidvalidity=1078863300/;uid=25;urlauth=submit+harry :internal:91354a473744909de610943775f92038 LAST S: 235 2.7.0 PLAIN authentication successful. S: 250 2.5.0 Address Ok. S: 250 2.1.5 ron@gryffindor.example.com OK. S: 250 2.5.0 Ok. Note that PIPELINING of the AUTH command is only permitted if the selected mechanism can be completed in one round trip, a client initial response is provided, and no SASL security layer is negotiated. This is possible for PLAIN and EXTERNAL, but not for most other SASL mechanisms. Some examples of failure cases: C: MAIL FROM:<harry@gryffindor.example.com> C: RCPT TO:<malfoy@slitherin.example.com> C: BURL imap://harry@gryffindor.example.com/outbox ;uidvalidity=1078863300/;uid=25;urlauth=submit+harry :internal:91354a473744909de610943775f92038 LAST S: 250 2.5.0 Address Ok. S: 550 5.7.1 Relaying not allowed: malfoy@slitherin.example.com S: 554 5.5.0 No recipients have been specified. C: MAIL FROM:<harry@gryffindor.example.com> C: RCPT TO:<ron@gryffindor.example.com> C: BURL imap://harry@gryffindor.example.com/outbox ;uidvalidity=1078863300/;uid=25;urlauth=submit+harry :internal:71354a473744909de610943775f92038 LAST S: 250 2.5.0 Address Ok. S: 250 2.1.5 ron@gryffindor.example.com OK. S: 554 5.7.0 IMAP URL authorization failed3.5. Formal Syntax The following syntax specification inherits ABNF [RFC4234] and Uniform Resource Identifiers [RFC3986]. burl-param = "imap" / ("imap://" authority) ; parameter to BURL EHLO keyword burl-cmd = "BURL" SP absolute-URI [SP end-marker] CRLF end-marker = "LAST"Newman Standards Track [Page 6]RFC 4468 Message Submission BURL Extension May 20064. 8-Bit and Binary A submit server that advertises BURL MUST also advertise 8BITMIME [RFC1652] and perform the down conversion described in that specification on the resulting complete message if 8-bit data is received with the BURL command and passed to a 7-bit server. If the URL argument to BURL refers to binary data, then the submit server MAY refuse the command or down convert as described in Binary SMTP [RFC3030]. The Submit server MAY refuse to accept a BURL command or combination of BURL and BDAT commands that result in un-encoded 8-bit data in mail or MIME [RFC2045] headers. Alternatively, the server MAY accept such data and down convert to MIME header encoding [RFC2047].5. Updates to RFC 3463 SMTP or Submit servers that advertise ENHANCEDSTATUSCODES [RFC2034] use enhanced status codes defined in RFC 3463 [RFC3463]. The BURL extension introduces new error cases that that RFC did not consider. The following additional enhanced status codes are defined by this specification: X.6.6 Message content not available The message content could not be fetched from a remote system. This may be useful as a permanent or persistent temporary notification. X.7.8 Trust relationship required The submission server requires a configured trust relationship with a third-party server in order to access the message content.6. Response Codes This section includes example response codes to the BURL command. Other text may be used with the same response codes. This list is not exhaustive, and BURL clients MUST tolerate any valid SMTP response code. Most of these examples include the appropriate enhanced status code [RFC3463]. 554 5.5.0 No recipients have been specified This response code occurs when BURL is used (for example, with PIPELINING) and all RCPT TOs failed.Newman Standards Track [Page 7]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -