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

📄 rfc3501.txt

📁 广泛使用的邮件服务器!同时
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   The client command begins an operation.  Each client command is   prefixed with an identifier (typically a short alphanumeric string,   e.g., A0001, A0002, etc.) called a "tag".  A different tag is   generated by the client for each command.   Clients MUST follow the syntax outlined in this specification   strictly.  It is a syntax error to send a command with missing or   extraneous spaces or arguments.   There are two cases in which a line from the client does not   represent a complete command.  In one case, a command argument is   quoted with an octet count (see the description of literal in String   under Data Formats); in the other case, the command arguments require   server feedback (see the AUTHENTICATE command).  In either case, theCrispin                     Standards Track                     [Page 6]RFC 3501                         IMAPv4                       March 2003   server sends a command continuation request response if it is ready   for the octets (if appropriate) and the remainder of the command.   This response is prefixed with the token "+".        Note: If instead, the server detected an error in the        command, it sends a BAD completion response with a tag        matching the command (as described below) to reject the        command and prevent the client from sending any more of the        command.        It is also possible for the server to send a completion        response for some other command (if multiple commands are        in progress), or untagged data.  In either case, the        command continuation request is still pending; the client        takes the appropriate action for the response, and reads        another response from the server.  In all cases, the client        MUST send a complete command (including receiving all        command continuation request responses and command        continuations for the command) before initiating a new        command.   The protocol receiver of an IMAP4rev1 server reads a command line   from the client, parses the command and its arguments, and transmits   server data and a server command completion result response.2.2.2.  Server Protocol Sender and Client Protocol Receiver   Data transmitted by the server to the client and status responses   that do not indicate command completion are prefixed with the token   "*", and are called untagged responses.   Server data MAY be sent as a result of a client command, or MAY be   sent unilaterally by the server.  There is no syntactic difference   between server data that resulted from a specific command and server   data that were sent unilaterally.   The server completion result response indicates the success or   failure of the operation.  It is tagged with the same tag as the   client command which began the operation.  Thus, if more than one   command is in progress, the tag in a server completion response   identifies the command to which the response applies.  There are   three possible server completion responses: OK (indicating success),   NO (indicating failure), or BAD (indicating a protocol error such as   unrecognized command or command syntax error).   Servers SHOULD enforce the syntax outlined in this specification   strictly.  Any client command with a protocol syntax error, including   (but not limited to) missing or extraneous spaces or arguments,Crispin                     Standards Track                     [Page 7]RFC 3501                         IMAPv4                       March 2003   SHOULD be rejected, and the client given a BAD server completion   response.   The protocol receiver of an IMAP4rev1 client reads a response line   from the server.  It then takes action on the response based upon the   first token of the response, which can be a tag, a "*", or a "+".   A client MUST be prepared to accept any server response at all times.   This includes server data that was not requested.  Server data SHOULD   be recorded, so that the client can reference its recorded copy   rather than sending a command to the server to request the data.  In   the case of certain server data, the data MUST be recorded.   This topic is discussed in greater detail in the Server Responses   section.2.3.    Message Attributes   In addition to message text, each message has several attributes   associated with it.  These attributes can be retrieved individually   or in conjunction with other attributes or message texts.2.3.1.  Message Numbers   Messages in IMAP4rev1 are accessed by one of two numbers; the unique   identifier or the message sequence number.2.3.1.1.        Unique Identifier (UID) Message Attribute   A 32-bit value assigned to each message, which when used with the   unique identifier validity value (see below) forms a 64-bit value   that MUST NOT refer to any other message in the mailbox or any   subsequent mailbox with the same name forever.  Unique identifiers   are assigned in a strictly ascending fashion in the mailbox; as each   message is added to the mailbox it is assigned a higher UID than the   message(s) which were added previously.  Unlike message sequence   numbers, unique identifiers are not necessarily contiguous.   The unique identifier of a message MUST NOT change during the   session, and SHOULD NOT change between sessions.  Any change of   unique identifiers between sessions MUST be detectable using the   UIDVALIDITY mechanism discussed below.  Persistent unique identifiers   are required for a client to resynchronize its state from a previous   session with the server (e.g., disconnected or offline access   clients); this is discussed further in [IMAP-DISC].Crispin                     Standards Track                     [Page 8]RFC 3501                         IMAPv4                       March 2003   Associated with every mailbox are two values which aid in unique   identifier handling: the next unique identifier value and the unique   identifier validity value.   The next unique identifier value is the predicted value that will be   assigned to a new message in the mailbox.  Unless the unique   identifier validity also changes (see below), the next unique   identifier value MUST have the following two characteristics.  First,   the next unique identifier value MUST NOT change unless new messages   are added to the mailbox; and second, the next unique identifier   value MUST change whenever new messages are added to the mailbox,   even if those new messages are subsequently expunged.        Note: The next unique identifier value is intended to        provide a means for a client to determine whether any        messages have been delivered to the mailbox since the        previous time it checked this value.  It is not intended to        provide any guarantee that any message will have this        unique identifier.  A client can only assume, at the time        that it obtains the next unique identifier value, that        messages arriving after that time will have a UID greater        than or equal to that value.   The unique identifier validity value is sent in a UIDVALIDITY   response code in an OK untagged response at mailbox selection time.   If unique identifiers from an earlier session fail to persist in this   session, the unique identifier validity value MUST be greater than   the one used in the earlier session.        Note: Ideally, unique identifiers SHOULD persist at all        times.  Although this specification recognizes that failure        to persist can be unavoidable in certain server        environments, it STRONGLY ENCOURAGES message store        implementation techniques that avoid this problem.  For        example:         1) Unique identifiers MUST be strictly ascending in the            mailbox at all times.  If the physical message store is            re-ordered by a non-IMAP agent, this requires that the            unique identifiers in the mailbox be regenerated, since            the former unique identifiers are no longer strictly            ascending as a result of the re-ordering.         2) If the message store has no mechanism to store unique            identifiers, it must regenerate unique identifiers at            each session, and each session must have a unique            UIDVALIDITY value.Crispin                     Standards Track                     [Page 9]RFC 3501                         IMAPv4                       March 2003         3) If the mailbox is deleted and a new mailbox with the            same name is created at a later date, the server must            either keep track of unique identifiers from the            previous instance of the mailbox, or it must assign a            new UIDVALIDITY value to the new instance of the            mailbox.  A good UIDVALIDITY value to use in this case            is a 32-bit representation of the creation date/time of            the mailbox.  It is alright to use a constant such as            1, but only if it guaranteed that unique identifiers            will never be reused, even in the case of a mailbox            being deleted (or renamed) and a new mailbox by the            same name created at some future time.         4) The combination of mailbox name, UIDVALIDITY, and UID            must refer to a single immutable message on that server            forever.  In particular, the internal date, [RFC-2822]            size, envelope, body structure, and message texts            (RFC822, RFC822.HEADER, RFC822.TEXT, and all BODY[...]            fetch data items) must never change.  This does not            include message numbers, nor does it include attributes            that can be set by a STORE command (e.g., FLAGS).2.3.1.2.        Message Sequence Number Message Attribute   A relative position from 1 to the number of messages in the mailbox.   This position MUST be ordered by ascending unique identifier.  As   each new message is added, it is assigned a message sequence number   that is 1 higher than the number of messages in the mailbox before   that new message was added.   Message sequence numbers can be reassigned during the session.  For   example, when a message is permanently removed (expunged) from the   mailbox, the message sequence number for all subsequent messages is   decremented.  The number of messages in the mailbox is also   decremented.  Similarly, a new message can be assigned a message   sequence number that was once held by some other message prior to an   expunge.   In addition to accessing messages by relative position in the   mailbox, message sequence numbers can be used in mathematical   calculations.  For example, if an untagged "11 EXISTS" is received,   and previously an untagged "8 EXISTS" was received, three new   messages have arrived with message sequence numbers of 9, 10, and 11.   Another example, if message 287 in a 523 message mailbox has UID   12345, there are exactly 286 messages which have lesser UIDs and 236   messages which have greater UIDs.Crispin                     Standards Track                    [Page 10]RFC 3501                         IMAPv4                       March 20032.3.2.  Flags Message Attribute   A list of zero or more named tokens associated with the message.  A   flag is set by its addition to this list, and is cleared by its   removal.  There are two types of flags in IMAP4rev1.  A flag of   either type can be permanent or session-only.   A system flag is a flag name that is pre-defined in this   specification.  All system flags begin with "\".  Certain system   flags (\Deleted and \Seen) have special semantics described   elsewhere.  The currently-defined system flags are:        \Seen           Message has been read        \Answered           Message has been answered        \Flagged           Message is "flagged" for urgent/special attention        \Deleted           Message is "deleted" for removal by later EXPUNGE        \Draft           Message has not completed composition (marked as a draft).        \Recent           Message is "recently" arrived in this mailbox.  This session           is the first session to have been notified about this           message; if the session is read-write, subsequent sessions           will not see \Recent set for this message.  This flag can not           be altered by the client.           If it is not possible to determine whether or not this           session is the first session to be notified about a message,           then that message SHOULD be considered recent.           If multiple connections have the same mailbox selected           simultaneously, it is undefined which of these connections           will see newly-arrived messages with \Recent set and which           will see it without \Recent set.   A keyword is defined by the server implementation.  Keywords do not   begin with "\".  Servers MAY permit the client to define new keywords   in the mailbox (see the description of the PERMANENTFLAGS response   code for more information).Crispin                     Standards Track                    [Page 11]RFC 3501                         IMAPv4                       March 2003   A flag can be permanent or session-only on a per-flag basis.   Permanent flags are those which the client can add or remove from the   message flags permanently; that is, concurrent and subsequent   sessions will see any change in permanent flags.  Changes to session   flags are valid only in that session.        Note: The \Recent system flag is a special case of a        session flag.  \Recent can not be used as an argument in a        STORE or APPEND command, and thus can not be changed at        all.2.3.3.  Internal Date Message Attribute   The internal date and time of the message on the server.  This   is not the date and time in the [RFC-2822] header, but rather a   date and time which reflects when the message was received.  In

⌨️ 快捷键说明

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