< 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/