⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3501.txt

📁 广泛使用的邮件服务器!同时
💻 TXT
📖 第 1 页 / 共 5 页
字号:
5.      Operational Considerations   The following rules are listed here to ensure that all IMAP4rev1   implementations interoperate properly.5.1.    Mailbox Naming   Mailbox names are 7-bit.  Client implementations MUST NOT attempt to   create 8-bit mailbox names, and SHOULD interpret any 8-bit mailbox   names returned by LIST or LSUB as UTF-8.  Server implementations   SHOULD prohibit the creation of 8-bit mailbox names, and SHOULD NOT   return 8-bit mailbox names in LIST or LSUB.  See section 5.1.3 for   more information on how to represent non-ASCII mailbox names.        Note: 8-bit mailbox names were undefined in earlier        versions of this protocol.  Some sites used a local 8-bit        character set to represent non-ASCII mailbox names.  Such        usage is not interoperable, and is now formally deprecated.   The case-insensitive mailbox name INBOX is a special name reserved to   mean "the primary mailbox for this user on this server".  The   interpretation of all other names is implementation-dependent.   In particular, this specification takes no position on case   sensitivity in non-INBOX mailbox names.  Some server implementations   are fully case-sensitive; others preserve case of a newly-created   name but otherwise are case-insensitive; and yet others coerce names   to a particular case.  Client implementations MUST interact with any   of these.  If a server implementation interprets non-INBOX mailbox   names as case-insensitive, it MUST treat names using the   international naming convention specially as described in section   5.1.3.   There are certain client considerations when creating a new mailbox   name:   1)    Any character which is one of the atom-specials (see the Formal         Syntax) will require that the mailbox name be represented as a         quoted string or literal.   2)    CTL and other non-graphic characters are difficult to represent         in a user interface and are best avoided.   3)    Although the list-wildcard characters ("%" and "*") are valid         in a mailbox name, it is difficult to use such mailbox names         with the LIST and LSUB commands due to the conflict with         wildcard interpretation.Crispin                     Standards Track                    [Page 18]RFC 3501                         IMAPv4                       March 2003   4)    Usually, a character (determined by the server implementation)         is reserved to delimit levels of hierarchy.   5)    Two characters, "#" and "&", have meanings by convention, and         should be avoided except when used in that convention.5.1.1.  Mailbox Hierarchy Naming   If it is desired to export hierarchical mailbox names, mailbox names   MUST be left-to-right hierarchical using a single character to   separate levels of hierarchy.  The same hierarchy separator character   is used for all levels of hierarchy within a single name.5.1.2.  Mailbox Namespace Naming Convention   By convention, the first hierarchical element of any mailbox name   which begins with "#" identifies the "namespace" of the remainder of   the name.  This makes it possible to disambiguate between different   types of mailbox stores, each of which have their own namespaces.        For example, implementations which offer access to USENET        newsgroups MAY use the "#news" namespace to partition the        USENET newsgroup namespace from that of other mailboxes.        Thus, the comp.mail.misc newsgroup would have a mailbox        name of "#news.comp.mail.misc", and the name        "comp.mail.misc" can refer to a different object (e.g., a        user's private mailbox).5.1.3.  Mailbox International Naming Convention   By convention, international mailbox names in IMAP4rev1 are specified   using a modified version of the UTF-7 encoding described in [UTF-7].   Modified UTF-7 may also be usable in servers that implement an   earlier version of this protocol.   In modified UTF-7, printable US-ASCII characters, except for "&",   represent themselves; that is, characters with octet values 0x20-0x25   and 0x27-0x7e.  The character "&" (0x26) is represented by the   two-octet sequence "&-".   All other characters (octet values 0x00-0x1f and 0x7f-0xff) are   represented in modified BASE64, with a further modification from   [UTF-7] that "," is used instead of "/".  Modified BASE64 MUST NOT be   used to represent any printing US-ASCII character which can represent   itself.Crispin                     Standards Track                    [Page 19]RFC 3501                         IMAPv4                       March 2003   "&" is used to shift to modified BASE64 and "-" to shift back to   US-ASCII.  There is no implicit shift from BASE64 to US-ASCII, and   null shifts ("-&" while in BASE64; note that "&-" while in US-ASCII   means "&") are not permitted.  However, all names start in US-ASCII,   and MUST end in US-ASCII; that is, a name that ends with a non-ASCII   ISO-10646 character MUST end with a "-").   The purpose of these modifications is to correct the following   problems with UTF-7:      1) UTF-7 uses the "+" character for shifting; this conflicts with         the common use of "+" in mailbox names, in particular USENET         newsgroup names.      2) UTF-7's encoding is BASE64 which uses the "/" character; this         conflicts with the use of "/" as a popular hierarchy delimiter.      3) UTF-7 prohibits the unencoded usage of "\"; this conflicts with         the use of "\" as a popular hierarchy delimiter.      4) UTF-7 prohibits the unencoded usage of "~"; this conflicts with         the use of "~" in some servers as a home directory indicator.      5) UTF-7 permits multiple alternate forms to represent the same         string; in particular, printable US-ASCII characters can be         represented in encoded form.      Although modified UTF-7 is a convention, it establishes certain      requirements on server handling of any mailbox name with an      embedded "&" character.  In particular, server implementations      MUST preserve the exact form of the modified BASE64 portion of a      modified UTF-7 name and treat that text as case-sensitive, even if      names are otherwise case-insensitive or case-folded.      Server implementations SHOULD verify that any mailbox name with an      embedded "&" character, used as an argument to CREATE, is: in the      correctly modified UTF-7 syntax, has no superfluous shifts, and      has no encoding in modified BASE64 of any printing US-ASCII      character which can represent itself.  However, client      implementations MUST NOT depend upon the server doing this, and      SHOULD NOT attempt to create a mailbox name with an embedded "&"      character unless it complies with the modified UTF-7 syntax.      Server implementations which export a mail store that does not      follow the modified UTF-7 convention MUST convert to modified      UTF-7 any mailbox name that contains either non-ASCII characters      or the "&" character.Crispin                     Standards Track                    [Page 20]RFC 3501                         IMAPv4                       March 2003           For example, here is a mailbox name which mixes English,           Chinese, and Japanese text:           ~peter/mail/&U,BTFw-/&ZeVnLIqe-           For example, the string "&Jjo!" is not a valid mailbox           name because it does not contain a shift to US-ASCII           before the "!".  The correct form is "&Jjo-!".  The           string "&U,BTFw-&ZeVnLIqe-" is not permitted because it           contains a superfluous shift.  The correct form is           "&U,BTF2XlZyyKng-".5.2.    Mailbox Size and Message Status Updates   At any time, a server can send data that the client did not request.   Sometimes, such behavior is REQUIRED.  For example, agents other than   the server MAY add messages to the mailbox (e.g., new message   delivery), change the flags of the messages in the mailbox (e.g.,   simultaneous access to the same mailbox by multiple agents), or even   remove messages from the mailbox.  A server MUST send mailbox size   updates automatically if a mailbox size change is observed during the   processing of a command.  A server SHOULD send message flag updates   automatically, without requiring the client to request such updates   explicitly.   Special rules exist for server notification of a client about the   removal of messages to prevent synchronization errors; see the   description of the EXPUNGE response for more detail.  In particular,   it is NOT permitted to send an EXISTS response that would reduce the   number of messages in the mailbox; only the EXPUNGE response can do   this.   Regardless of what implementation decisions a client makes on   remembering data from the server, a client implementation MUST record   mailbox size updates.  It MUST NOT assume that any command after the   initial mailbox selection will return the size of the mailbox.5.3.    Response when no Command in Progress   Server implementations are permitted to send an untagged response   (except for EXPUNGE) while there is no command in progress.  Server   implementations that send such responses MUST deal with flow control   considerations.  Specifically, they MUST either (1) verify that the   size of the data does not exceed the underlying transport's available   window size, or (2) use non-blocking writes.Crispin                     Standards Track                    [Page 21]RFC 3501                         IMAPv4                       March 20035.4.    Autologout Timer   If a server has an inactivity autologout timer, the duration of that   timer MUST be at least 30 minutes.  The receipt of ANY command from   the client during that interval SHOULD suffice to reset the   autologout timer.5.5.    Multiple Commands in Progress   The client MAY send another command without waiting for the   completion result response of a command, subject to ambiguity rules   (see below) and flow control constraints on the underlying data   stream.  Similarly, a server MAY begin processing another command   before processing the current command to completion, subject to   ambiguity rules.  However, any command continuation request responses   and command continuations MUST be negotiated before any subsequent   command is initiated.   The exception is if an ambiguity would result because of a command   that would affect the results of other commands.  Clients MUST NOT   send multiple commands without waiting if an ambiguity would result.   If the server detects a possible ambiguity, it MUST execute commands   to completion in the order given by the client.   The most obvious example of ambiguity is when a command would affect   the results of another command, e.g., a FETCH of a message's flags   and a STORE of that same message's flags.   A non-obvious ambiguity occurs with commands that permit an untagged   EXPUNGE response (commands other than FETCH, STORE, and SEARCH),   since an untagged EXPUNGE response can invalidate sequence numbers in   a subsequent command.  This is not a problem for FETCH, STORE, or   SEARCH commands because servers are prohibited from sending EXPUNGE   responses while any of those commands are in progress.  Therefore, if   the client sends any command other than FETCH, STORE, or SEARCH, it   MUST wait for the completion result response before sending a command   with message sequence numbers.        Note: UID FETCH, UID STORE, and UID SEARCH are different        commands from FETCH, STORE, and SEARCH.  If the client        sends a UID command, it must wait for a completion result        response before sending a command with message sequence        numbers.Crispin                     Standards Track                    [Page 22]RFC 3501                         IMAPv4                       March 2003   For example, the following non-waiting command sequences are invalid:      FETCH + NOOP + STORE      STORE + COPY + FETCH      COPY + COPY      CHECK + FETCH   The following are examples of valid non-waiting command sequences:      FETCH + STORE + SEARCH + CHECK      STORE + COPY + EXPUNGE      UID SEARCH + UID SEARCH may be valid or invalid as a non-waiting      command sequence, depending upon whether or not the second UID      SEARCH contains message sequence numbers.6.      Client Commands   IMAP4rev1 commands are described in this section.  Commands are   organized by the state in which the command is permitted.  Commands   which are permitted in multiple states are listed in the minimum   permitted state (for example, commands valid in authenticated and   selected state are listed in the authenticated state commands).   Command arguments, identified by "Arguments:" in the command   descriptions below, are described by function, not by syntax.  The   precise syntax of command arguments is described in the Formal Syntax   section.   Some commands cause specific server responses to be returned; these   are identified by "Responses:" in the command descriptions below.   See the response descriptions in the Responses section for   information on these responses, and the Formal Syntax section for the   precise syntax of these responses.  It is possible for server data to   be transmitted as a result of any command.  Thus, commands that do   not specifically require server data specify "no specific responses   for this command" instead of "none".

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -