📄 rfc2192.txt
字号:
authentication mechanism is inherited from a base IMAP URL. URLs always use "/" as the hierarchy delimiter for the purpose of resolving paths in relative URLs. IMAP4 permits the use of any hierarchy delimiter in mailbox names. For this reason, relative mailbox paths will only work if the mailbox uses "/" as the hierarchy delimiter. Relative URLs may be used on mailboxes which use other delimiters, but in that case, the entire mailbox name MUST be specified in the relative URL or inherited as a whole from the base URL. The base URL for a list of mailboxes or messages which was referred to by an IMAP URL is always the referring IMAP URL itself. The base URL for a message or message part which was referred to by an IMAP URL may be more complicated to determine. The program interpreting the relative URL will have to check the headers of the MIME entity and any enclosing MIME entities in order to locate the "Content-Base" and "Content-Location" headers. These headers are used to determine the base URL as defined in [HTTP]. For example, if the referring IMAP URL contains a "/;SECTION=1.2" parameter, then the MIME headers for section 1.2, for section 1, and for the enclosing message itself SHOULD be checked in that order for "Content-Base" or "Content-Location" headers.9. Multinational Considerations IMAP4 [IMAP4] section 5.1.3 includes a convention for encoding non-US-ASCII characters in IMAP mailbox names. Because this convention is private to IMAP, it is necessary to convert IMAP's encoding to one that can be more easily interpreted by a URL display program. For this reason, IMAP's modified UTF-7 encoding for mailboxes MUST be converted to UTF-8 [UTF8]. Since 8-bit characters are not permitted in URLs, the UTF-8 characters areNewman Standards Track [Page 6]RFC 2192 IMAP URL Scheme September 1997 encoded as required by the URL specification [BASIC-URL]. Sample code is included in Appendix A to demonstrate this conversion.10. Examples The following examples demonstrate how an IMAP4 client program might translate various IMAP4 URLs into a series of IMAP4 commands. Commands sent from the client to the server are prefixed with "C:", and responses sent from the server to the client are prefixed with "S:". The URL: <imap://minbari.org/gray-council;UIDVALIDITY=385759045/;UID=20> Results in the following client commands: <connect to minbari.org, port 143> C: A001 LOGIN ANONYMOUS sheridan@babylon5.org C: A002 SELECT gray-council <client verifies the UIDVALIDITY matches> C: A003 UID FETCH 20 BODY.PEEK[] The URL: <imap://michael@minbari.org/users.*;type=list> Results in the following client commands: <client requests password from user> <connect to minbari.org imap server, activate strong encryption> C: A001 LOGIN MICHAEL zipper C: A002 LIST "" users.* The URL: <imap://psicorp.org/~peter/%E6%97%A5%E6%9C%AC%E8%AA%9E/ %E5%8F%B0%E5%8C%97> Results in the following client commands: <connect to psicorp.org, port 143> C: A001 LOGIN ANONYMOUS bester@psycop.psicorp.org C: A002 SELECT ~peter/&ZeVnLIqe-/&U,BTFw- <commands the client uses for viewing the contents of a mailbox>Newman Standards Track [Page 7]RFC 2192 IMAP URL Scheme September 1997 The URL: <imap://;AUTH=KERBEROS_V4@minbari.org/gray-council/;uid=20/ ;section=1.2> Results in the following client commands: <connect to minbari.org, port 143> C: A001 AUTHENTICATE KERBEROS_V4 <authentication exchange> C: A002 SELECT gray-council C: A003 UID FETCH 20 BODY.PEEK[1.2] If the following relative URL is located in that body part: <;section=1.4> This could result in the following client commands: C: A004 UID FETCH 20 (BODY.PEEK[1.2.MIME] BODY.PEEK[1.MIME] BODY.PEEK[HEADER.FIELDS (Content-Base Content-Location)]) <Client looks for Content-Base or Content-Location headers in result. If no such headers, then it does the following> C: A005 UID FETCH 20 BODY.PEEK[1.4] The URL: <imap://;AUTH=*@minbari.org/gray%20council?SUBJECT%20shadows> Could result in the following: <connect to minbari.org, port 143> C: A001 CAPABILITY S: * CAPABILITY IMAP4rev1 AUTH=GSSAPI S: A001 OK C: A002 AUTHENTICATE GSSAPI <authentication exchange> S: A002 OK user lennier authenticated C: A003 SELECT "gray council" ... C: A004 SEARCH SUBJECT shadows S: * SEARCH 8 10 13 14 15 16 S: A004 OK SEARCH completed C: A005 FETCH 8,10,13:16 ALL ...Newman Standards Track [Page 8]RFC 2192 IMAP URL Scheme September 1997 NOTE: In this final example, the client has implementation dependent choices. The authentication mechanism could be anything, including PREAUTH. And the final FETCH command could fetch more or less information about the messages, depending on what it wishes to display to the user.11. Security Considerations Security considerations discussed in the IMAP specification [IMAP4] and the URL specification [BASIC-URL] are relevant. Security considerations related to authenticated URLs are discussed in section 3 of this document. Many email clients store the plain text password for later use after logging into an IMAP server. Such clients MUST NOT use a stored password in response to an IMAP URL without explicit permission from the user to supply that password to the specified host name.12. ABNF for IMAP URL scheme This uses ABNF as defined in RFC 822 [IMAIL]. Terminals from the BNF for IMAP [IMAP4] and URLs [BASIC-URL] are also used. Strings are not case sensitive and free insertion of linear-white-space is not permitted. achar = uchar / "&" / "=" / "~" ; see [BASIC-URL] for "uchar" definition bchar = achar / ":" / "@" / "/" enc_auth_type = 1*achar ; encoded version of [IMAP-AUTH] "auth_type" enc_list_mailbox = 1*bchar ; encoded version of [IMAP4] "list_mailbox" enc_mailbox = 1*bchar ; encoded version of [IMAP4] "mailbox" enc_search = 1*bchar ; encoded version of search_program below enc_section = 1*bchar ; encoded version of section belowNewman Standards Track [Page 9]RFC 2192 IMAP URL Scheme September 1997 enc_user = 1*achar ; encoded version of [IMAP4] "userid" imapurl = "imap://" iserver "/" [ icommand ] iauth = ";AUTH=" ( "*" / enc_auth_type ) icommand = imailboxlist / imessagelist / imessagepart imailboxlist = [enc_list_mailbox] ";TYPE=" list_type imessagelist = enc_mailbox [ "?" enc_search ] [uidvalidity] imessagepart = enc_mailbox [uidvalidity] iuid [isection] isection = "/;SECTION=" enc_section iserver = [iuserauth "@"] hostport ; See [BASIC-URL] for "hostport" definition iuid = "/;UID=" nz_number ; See [IMAP4] for "nz_number" definition iuserauth = enc_user [iauth] / [enc_user] iauth list_type = "LIST" / "LSUB" search_program = ["CHARSET" SPACE astring SPACE] search_key *(SPACE search_key) ; IMAP4 literals may not be used ; See [IMAP4] for "astring" and "search_key" section = section_text / (nz_number *["." nz_number] ["." (section_text / "MIME")]) ; See [IMAP4] for "section_text" and "nz_number" uidvalidity = ";UIDVALIDITY=" nz_number ; See [IMAP4] for "nz_number" definition13. References [BASIC-URL] Berners-Lee, Masinter, McCahill, "Uniform Resource Locators (URL)", RFC 1738, CERN, Xerox Corporation, University of Minnesota, December 1994. <ftp://ds.internic.net/rfc/rfc1738.txt>Newman Standards Track [Page 10]RFC 2192 IMAP URL Scheme September 1997 [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4rev1", RFC 2060, University of Washington, December 1996. <ftp://ds.internic.net/rfc/rfc2060.txt> [IMAP-AUTH] Myers, J., "IMAP4 Authentication Mechanism", RFC 1731, Carnegie-Mellon University, December 1994. <ftp://ds.internic.net/rfc/rfc1731.txt> [HTTP] Fielding, Gettys, Mogul, Frystyk, Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068, UC Irvine, DEC, MIT/LCS, January 1997. <ftp://ds.internic.net/rfc/rfc2068.txt> [IMAIL] Crocker, "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, University of Delaware, August 1982. <ftp://ds.internic.net/rfc/rfc822.txt> [KEYWORDS] Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, Harvard University, March 1997. <ftp://ds.internic.net/rfc/rfc2119.txt> [MIME] Freed, N., Borenstein, N., "Multipurpose Internet Mail Extensions", RFC 2045, Innosoft, First Virtual, November 1996. <ftp://ds.internic.net/rfc/rfc2045.txt> [REL-URL] Fielding, "Relative Uniform Resource Locators", RFC 1808, UC Irvine, June 1995.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -