| < draft-gahrns-imap-namespace-05.txt | draft-gahrns-imap-namespace-06.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Gahrns, Microsoft | Network Working Group M. Gahrns, Microsoft | |||
| C. Newman, Innosoft | C. Newman, Innosoft | |||
| Internet Draft | Internet Draft | |||
| Document: draft-gahrns-imap-namespace-05.txt November 1997 | Document: draft-gahrns-imap-namespace-06.txt November 1997 | |||
| IMAP4 Namespace | IMAP4 Namespace | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet Draft. Internet Drafts are working | This document is an Internet Draft. Internet Drafts are working | |||
| documents of the Internet Engineering Task Force (IETF), its Areas, | documents of the Internet Engineering Task Force (IETF), its Areas, | |||
| and its Working Groups. Note that other groups may also distribute | and its Working Groups. Note that other groups may also distribute | |||
| working documents as Internet Drafts. | working documents as Internet Drafts. | |||
| skipping to change at line 60 ¶ | skipping to change at line 60 ¶ | |||
| mailboxes, other users' mailboxes, and shared mailboxes. This | mailboxes, other users' mailboxes, and shared mailboxes. This | |||
| allows a client to avoid much of the manual user configuration that | allows a client to avoid much of the manual user configuration that | |||
| is now necessary when mixing and matching IMAP4 clients and servers. | is now necessary when mixing and matching IMAP4 clients and servers. | |||
| Gahrns and Newman 1 | Gahrns and Newman 1 | |||
| IMAP4 Namespace November 1997 | IMAP4 Namespace November 1997 | |||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| In examples, "C:" and "S:" indicate lines sent by the client and | In examples, "C:" and "S:" indicate lines sent by the client and | |||
| server respectively. | server respectively. If such lines are wrapped without a new "C:" | |||
| or "S:" label, then the wrapping is for editorial clarity and is not | ||||
| part of the command. | ||||
| Personal Namespace: A namespace that the server considers within the | Personal Namespace: A namespace that the server considers within the | |||
| personal scope of the authenticated user on a particular connection. | personal scope of the authenticated user on a particular connection. | |||
| Typically, only the authenticated user has access to mailboxes in | Typically, only the authenticated user has access to mailboxes in | |||
| their Personal Namespace. It is the part of the namespace that | their Personal Namespace. It is the part of the namespace that | |||
| belongs to the user that is allocated for mailboxes. If an INBOX | belongs to the user that is allocated for mailboxes. If an INBOX | |||
| exists for a user, it MUST appear within the user's personal | exists for a user, it MUST appear within the user's personal | |||
| namespace. In the typical case, there SHOULD be only one Personal | namespace. In the typical case, there SHOULD be only one Personal | |||
| Namespace on a server. | Namespace on a server. | |||
| skipping to change at line 104 ¶ | skipping to change at line 106 ¶ | |||
| these clients to inter-operate correctly with the variety of IMAP4 | these clients to inter-operate correctly with the variety of IMAP4 | |||
| servers available, the user must enter the prefix of the Personal | servers available, the user must enter the prefix of the Personal | |||
| Namespace used by the server. Using the NAMESPACE command, a client | Namespace used by the server. Using the NAMESPACE command, a client | |||
| is able to automatically discover this prefix without manual user | is able to automatically discover this prefix without manual user | |||
| configuration. | configuration. | |||
| In addition, users are often required to manually enter the prefixes | In addition, users are often required to manually enter the prefixes | |||
| of various namespaces in order to view the mailboxes located there. | of various namespaces in order to view the mailboxes located there. | |||
| For example, they might be required to enter the prefix of #shared | For example, they might be required to enter the prefix of #shared | |||
| to view the shared mailboxes namespace. The NAMESPACE command allows | to view the shared mailboxes namespace. The NAMESPACE command allows | |||
| a client to automatically discover the namespaces that are available | ||||
| on a server. This allows a client to present the available | ||||
| namespaces to the user in what ever manner it deems appropriate. | ||||
| Gahrns and Newman 2 | Gahrns and Newman 2 | |||
| IMAP4 Namespace November 1997 | IMAP4 Namespace November 1997 | |||
| a client to automatically discover the namespaces that are available | ||||
| on a server. This allows a client to present the available | ||||
| namespaces to the user in what ever manner it deems appropriate. | ||||
| For example, a client could choose to initially display only | For example, a client could choose to initially display only | |||
| personal mailboxes, or it may choose to display the complete list of | personal mailboxes, or it may choose to display the complete list of | |||
| mailboxes available, and initially position the user at the root of | mailboxes available, and initially position the user at the root of | |||
| their Personal Namespace. | their Personal Namespace. | |||
| A server MAY choose to make available to the NAMESPACE command only | A server MAY choose to make available to the NAMESPACE command only | |||
| a subset of the complete set of namespaces the server supports. To | a subset of the complete set of namespaces the server supports. To | |||
| provide the ability to access these namespaces, a client SHOULD | provide the ability to access these namespaces, a client SHOULD | |||
| allow the user the ability to manually enter a namespace prefix. | allow the user the ability to manually enter a namespace prefix. | |||
| skipping to change at line 194 ¶ | skipping to change at line 196 ¶ | |||
| Example 5.4: | Example 5.4: | |||
| =========== | =========== | |||
| < A server that contains a Personal Namespace, Other Users' | < A server that contains a Personal Namespace, Other Users' | |||
| Namespace and multiple Shared Namespaces. Note that the | Namespace and multiple Shared Namespaces. Note that the | |||
| hierarchy delimiter used within each namespace can be | hierarchy delimiter used within each namespace can be | |||
| different. > | different. > | |||
| C: A001 NAMESPACE | C: A001 NAMESPACE | |||
| S: * NAMESPACE (("" "/")) (("~" "/")) (("#shared/" "/") | S: * NAMESPACE (("" "/")) (("~" "/")) (("#shared/" "/") | |||
| ("#public/" "/")("#ftp/" "/")("#news." ".")) | ("#public/" "/")("#ftp/" "/")("#news." ".")) | |||
| S: A001 OK NAMESPACE command completed | S: A001 OK NAMESPACE command completed | |||
| The prefix string allows a client to do things such as automatically | The prefix string allows a client to do things such as automatically | |||
| creating personal mailboxes or LISTing all available mailboxes | creating personal mailboxes or LISTing all available mailboxes | |||
| within a namespace. | within a namespace. | |||
| Example 5.5: | Example 5.5: | |||
| =========== | =========== | |||
| < A server that supports only the Personal Namespace, with a | < A server that supports only the Personal Namespace, with a | |||
| leading prefix of INBOX to personal mailboxes and a hierarchy | leading prefix of INBOX to personal mailboxes and a hierarchy | |||
| delimiter of "."> | delimiter of "."> | |||
| Gahrns and Newman 4 | ||||
| IMAP4 Namespace November 1997 | ||||
| C: A001 NAMESPACE | C: A001 NAMESPACE | |||
| S: * NAMESPACE (("INBOX." ".")) NIL NIL | S: * NAMESPACE (("INBOX." ".")) NIL NIL | |||
| S: A001 OK NAMESPACE command completed | S: A001 OK NAMESPACE command completed | |||
| Gahrns and Newman 4 | ||||
| IMAP4 Namespace November 1997 | ||||
| < Automatically create a mailbox to store sent items.> | < Automatically create a mailbox to store sent items.> | |||
| C: A002 CREATE "INBOX.Sent Mail" | C: A002 CREATE "INBOX.Sent Mail" | |||
| S: A002 OK CREATE command completed | S: A002 OK CREATE command completed | |||
| Although typically a server will support only a single Personal | Although typically a server will support only a single Personal | |||
| Namespace, and a single Other User's Namespace, circumstances exist | Namespace, and a single Other User's Namespace, circumstances exist | |||
| where there MAY be multiples of these, and a client MUST be prepared | where there MAY be multiples of these, and a client MUST be prepared | |||
| for them. If a client is configured such that it is required to | for them. If a client is configured such that it is required to | |||
| create a certain mailbox, there can be circumstances where it is | create a certain mailbox, there can be circumstances where it is | |||
| skipping to change at line 247 ¶ | skipping to change at line 249 ¶ | |||
| < The client is configured to save a copy of all mail sent by the | < The client is configured to save a copy of all mail sent by the | |||
| user into a mailbox called 'Sent Mail'. Furthermore, after a | user into a mailbox called 'Sent Mail'. Furthermore, after a | |||
| message is deleted from a mailbox, the client is configured to | message is deleted from a mailbox, the client is configured to | |||
| move that message to a mailbox called 'Deleted Items'.> | move that message to a mailbox called 'Deleted Items'.> | |||
| < Note that this example demonstrates how some extension flags | < Note that this example demonstrates how some extension flags | |||
| can be passed to further describe the #mh namespace. > | can be passed to further describe the #mh namespace. > | |||
| C: A001 NAMESPACE | C: A001 NAMESPACE | |||
| S: * NAMESPACE (("" "/")("#mh/" "/" "X-PARAM" ("FLAG1" "FLAG2"))) | S: * NAMESPACE (("" "/")("#mh/" "/" "X-PARAM" ("FLAG1" "FLAG2"))) | |||
| NIL NIL | NIL NIL | |||
| S: A001 OK NAMESPACE command completed | S: A001 OK NAMESPACE command completed | |||
| < It is desired to keep only one copy of sent mail. It is unclear | < It is desired to keep only one copy of sent mail. It is unclear | |||
| which Personal Namespace the client should use to create the | which Personal Namespace the client should use to create the | |||
| 'Sent Mail' mailbox. The user is prompted to select a namespace | 'Sent Mail' mailbox. The user is prompted to select a namespace | |||
| and only one 'Sent Mail' mailbox is created. > | and only one 'Sent Mail' mailbox is created. > | |||
| C: A002 CREATE "Sent Mail" | C: A002 CREATE "Sent Mail" | |||
| S: A002 OK CREATE command completed | S: A002 OK CREATE command completed | |||
| < The client is designed so that it keeps two 'Deleted Items' | < The client is designed so that it keeps two 'Deleted Items' | |||
| mailboxes, one for each namespace. > | mailboxes, one for each namespace. > | |||
| C: A003 CREATE "Delete Items" | C: A003 CREATE "Delete Items" | |||
| S: A003 OK CREATE command completed | ||||
| C: A004 CREATE "#mh/Deleted Items" | ||||
| Gahrns and Newman 5 | Gahrns and Newman 5 | |||
| IMAP4 Namespace November 1997 | IMAP4 Namespace November 1997 | |||
| S: A003 OK CREATE command completed | ||||
| C: A004 CREATE "#mh/Deleted Items" | ||||
| S: A004 OK CREATE command completed | S: A004 OK CREATE command completed | |||
| The next level of hierarchy following the Other Users' Namespace | The next level of hierarchy following the Other Users' Namespace | |||
| prefix SHOULD consist of <username>, where <username> is a user name | prefix SHOULD consist of <username>, where <username> is a user name | |||
| as per the IMAP4 LOGIN or AUTHENTICATE command. | as per the IMAP4 LOGIN or AUTHENTICATE command. | |||
| A client can construct a LIST command by appending a "%" to the | A client can construct a LIST command by appending a "%" to the | |||
| Other Users' Namespace prefix to discover the Personal Namespaces of | Other Users' Namespace prefix to discover the Personal Namespaces of | |||
| other users that are available to the currently authenticated user. | other users that are available to the currently authenticated user. | |||
| skipping to change at line 315 ¶ | skipping to change at line 317 ¶ | |||
| S: A002 OK LIST command completed | S: A002 OK LIST command completed | |||
| Example 5.8: | Example 5.8: | |||
| =========== | =========== | |||
| < A server that does not support providing a list of other user's | < A server that does not support providing a list of other user's | |||
| mailboxes that are accessible to the currently logged on user. | mailboxes that are accessible to the currently logged on user. | |||
| The mailboxes are listable if the client includes the name of the | The mailboxes are listable if the client includes the name of the | |||
| other user with the Other Users' Namespace prefix. > | other user with the Other Users' Namespace prefix. > | |||
| Gahrns and Newman 6 | ||||
| IMAP4 Namespace November 1997 | ||||
| C: A001 NAMESPACE | C: A001 NAMESPACE | |||
| S: * NAMESPACE (("" "/")) (("#Users/" "/")) NIL | S: * NAMESPACE (("" "/")) (("#Users/" "/")) NIL | |||
| S: A001 OK NAMESPACE command completed | S: A001 OK NAMESPACE command completed | |||
| Gahrns and Newman 6 | ||||
| IMAP4 Namespace November 1997 | ||||
| < In this example, the currently logged on user has access to the | < In this example, the currently logged on user has access to the | |||
| Personal Namespace of user Mike, but the server chose to suppress | Personal Namespace of user Mike, but the server chose to suppress | |||
| this information in the LIST response. However, by appending the | this information in the LIST response. However, by appending the | |||
| user name Mike (received through user input) to the Other Users' | user name Mike (received through user input) to the Other Users' | |||
| Namespace prefix, the client is able to get a listing of the | Namespace prefix, the client is able to get a listing of the | |||
| personal mailboxes of user Mike. > | personal mailboxes of user Mike. > | |||
| C: A002 LIST "" "#Users/%" | C: A002 LIST "" "#Users/%" | |||
| S: A002 NO The requested item could not be found. | S: A002 NO The requested item could not be found. | |||
| skipping to change at line 409 ¶ | skipping to change at line 411 ¶ | |||
| ; <string> as defined in [RFC-2060] | ; <string> as defined in [RFC-2060] | |||
| ; Note that the namespace prefix is to a mailbox and following | ; Note that the namespace prefix is to a mailbox and following | |||
| ; IMAP4 convention, any international string in the NAMESPACE | ; IMAP4 convention, any international string in the NAMESPACE | |||
| ; response MUST be of modified UTF-7 format as described in | ; response MUST be of modified UTF-7 format as described in | |||
| ; [RFC-2060]. | ; [RFC-2060]. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| In response to a LIST command containing an argument of the Other | In response to a LIST command containing an argument of the Other | |||
| Users' Namespace prefix, a server SHOULD NOT list users that have | Users' Namespace prefix, a server SHOULD NOT list users that have | |||
| not granted access to their personal mailboxes to the currently | not granted list access to their personal mailboxes to the currently | |||
| authenticated user. Providing such a list, could compromise | authenticated user. Providing such a list, could compromise | |||
| security by potentially disclosing confidential information of who | security by potentially disclosing confidential information of who | |||
| is located on the server, or providing a starting point of a list of | is located on the server, or providing a starting point of a list of | |||
| user accounts to attack. | user accounts to attack. | |||
| Gahrns and Newman 8 | ||||
| IMAP4 Namespace November 1997 | ||||
| 8. References | 8. References | |||
| [RFC-2060], Crispin, M., "Internet Message Access Protocol – Version | [RFC-2060], Crispin, M., "Internet Message Access Protocol – Version | |||
| 4rev1", RFC 2060, University of Washington, December 1996. | 4rev1", RFC 2060, University of Washington, December 1996. | |||
| Gahrns and Newman 8 | ||||
| IMAP4 Namespace November 1997 | ||||
| [RFC-2119], Bradner, S, "Key words for use in RFCs to Indicate | [RFC-2119], Bradner, S, "Key words for use in RFCs to Indicate | |||
| Requirement Levels", RFC 2119, Harvard University, March 1997 | Requirement Levels", RFC 2119, Harvard University, March 1997 | |||
| [ABNF], DRUMS working group, Dave Crocker Editor, "Augmented BNF for | [ABNF], DRUMS working group, Dave Crocker Editor, "Augmented BNF for | |||
| Syntax Specifications: ABNF", draft-drums-abnf-04.txt (work in | Syntax Specifications: ABNF", draft-drums-abnf-04.txt (work in | |||
| progress), Internet Mail Consortium, September 1997 | progress), Internet Mail Consortium, September 1997 | |||
| [IMAP-URL], Newman, C., "IMAP URL Scheme", RFC 2192, Innosoft, | [IMAP-URL], Newman, C., "IMAP URL Scheme", RFC 2192, Innosoft, | |||
| September 1997 | September 1997 | |||
| End of changes. 15 change blocks. | ||||
| 20 lines changed or deleted | 22 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/ | ||||