📄 rfc1064.txt
字号:
<-- A003 OK Fetch complete {Wait for command} A004 FETCH 8 RFC822.TEXT --> <-- * 8 Fetch (RFC822.TEXT {893} ...893 characters of text... <-- ) <-- A004 OK Fetch complete {Wait for command} A005 STORE 8 +Flags \Deleted --> <-- * 8 Store (Flags (\Deleted \Seen)) <-- A005 OK Store complete {Wait for command} A006 EXPUNGE --> <-- * 19 EXISTS <-- * 8 EXPUNGE <-- * 18 EXISTS <-- A006 Expunge complete {Wait for command} A007 LOGOUT --> <-- * BYE IMAP2 server quitting <-- A007 OK Logout complete {Close Connection} --><-- {Close connection} {Go back to start}Crispin [Page 7]RFC 1064 IMAP2 July 1988Conventions The following terms are used in a meta-sense in the syntax specification below: An ASCII-STRING is a sequence of arbitrary ASCII characters. An ATOM is a sequence of ASCII characters delimited by SP or CRLF. A CHARACTER is any ASCII character except """", "{", CR, LF, "%", or "\". A CRLF is an ASCII carriage-return character followed immediately by an ASCII linefeed character. A NUMBER is a sequence of the ASCII characters which represent decimal numerals ("0" through "9"), delimited by SP, CRLF, ",", or ":". A SP is the ASCII space character. A TEXT_LINE is a human-readable sequence of ASCII characters up to but not including a terminating CRLF. One of the most common fields in the IMAP2 protocol is a STRING, which may be an ATOM, QUOTED-STRING (a sequence of CHARACTERs inside double-quotes), or a LITERAL. A literal consists of an open brace ("{"), a number, a close brace ("}"), a CRLF, and then an ASCII- STRING of n characters, where n is the value of the number inside the brace. In general, a string should be represented as an ATOM or QUOTED-STRING if at all possible. The semantics for QUOTED-STRING or LITERAL are checked before those for ATOM; therefore an ATOM used in a STRING may only contain CHARACTERs. Literals are most often sent from the server to the client; in the rare case of a client to server literal there is a special consideration (see the "+ text" response below). Another important field is the SEQUENCE, which identifies a set of messages by consecutive numbers from 1 to n where n is the number of messages in the mailbox. A sequence may consist of a single number, a pair of numbers delimited by colon indicating all numbers between those two numbers, or a list of single numbers and/or number pairs. For example, the sequence 2,4:7,9,12:15 is equivalent to 2,4,5,6,7,9,12,13,14,15 and identifies all of those messages.Crispin [Page 8]RFC 1064 IMAP2 July 1988Definitions of Commands and Responses Summary of Commands and Responses Commands || Responses -------- || ------- tag NOOP || tag OK text tag LOGIN user password || tag NO text tag LOGOUT || tag BAD text tag SELECT mailbox || * message_number data tag CHECK || * FLAGS flag_list tag EXPUNGE || * SEARCH sequence tag COPY sequence mailbox || * BYE text tag FETCH sequence data || * OK text tag STORE sequence data value || * NO text tag SEARCH search_program || * BAD text || + textCommands tag NOOP The NOOP command returns an OK to the client. By itself, it does nothing, but certain things may happen as side effects. For example, server implementations which implicitly check the mailbox for new mail may do so as a result of this command. The primary use of this command is to for the client to see if the server is still alive (and notify the server that the client is still alive, for those servers which have inactivity autologout timers). tag LOGIN user password The LOGIN command identifies the user to the server and carries the password authenticating this user. This information is used by the server to control access to the mailboxes. EXAMPLE: A001 LOGIN SMITH SESAME logs in as user SMITH with password SESAME. tag LOGOUT The LOGOUT command indicates the client is done with the session. The server sends an unsolicited BYE response before the (tagged) OK response, and then closes the connection. tag SELECT mailbox The SELECT command selects a particular mailbox. The server mustCrispin [Page 9]RFC 1064 IMAP2 July 1988 check that the user is permitted read access to this mailbox. Prior to returning an OK to the client, the server must send an unsolicited FLAGS and <n> EXISTS response to the client giving the flags list for this mailbox (simply the system flags if this mailbox doesn't have any special flags) and the number of messages in the mailbox. It is also recommended that the server send a <n> RECENT unsolicited response to the client for the benefit of clients which make use of the number of new messages in a mailbox. Multiple SELECT commands are permitted in a session, in which case the prior mailbox is deselected first. The default mailbox for the SELECT command is INBOX, which is a special name reserved to mean "the primary mailbox for this user on this server". The format of other mailbox names is operating system dependent (as of this writing, it reflects the filename path of the mailbox file on the current servers). EXAMPLE: A002 SELECT INBOX selects the default mailbox. tag CHECK The CHECK command forces a check for new messages and a rescan of the mailbox for internal change for those implementations which allow multiple simultaneous read/write access to the same mailbox (e.g., TOPS-20). It is recommend that periodic implicit checks for new mail be done by servers as well. The server should send an unsolicited <n> EXISTS response prior to returning an OK to the client. tag EXPUNGE The EXPUNGE command permanently removes all messages with the \DELETED flag set in its flags from the mailbox. Prior to returning an OK to the client, for each message which is removed, an unsolicited <n> EXPUNGE response is sent indicating which message was removed. The message number of each subsequent message in the mailbox is immediately decremented by 1; this means that if the last 5 messages in a 9-message mail file are expunged you will receive 5 "* 5 EXPUNGE" responses. To ensure mailbox integrity and server/client synchronization, it is recommended that the server do an implicit check prior to commencing the expunge and again when the expunge is completed. Furthermore, if the server allows multiple simultaneous access to the same mail file the server must lock the mail file for exclusive access while an expunge is taking place.Crispin [Page 10]RFC 1064 IMAP2 July 1988 EXPUNGE is not allowed if the user does not have write access to this mailbox. tag COPY sequence mailbox The COPY command copies the specified message(s) to the specified destination mailbox. If the destination mailbox does not exist, the server should create it. Prior to returning an OK to the client, the server should return an unsolicited <n> COPY response for each message copied. A copy should set the \SEEN flag for all messages which were successfully copied (provided, of course, that the user has write access to this mailbox). EXAMPLE: A003 COPY 2:4 MEETING copies messages 2, 3, and 4 to mailbox "MEETING". COPY is not allowed if the user does not have write access to the destination mailbox. tag FETCH sequence data The FETCH command retrieves data associated with a message in the mailbox. The data items to be fetched may be either a single atom or an S-expression list. The currently defined data items that can be fetched are: ALL Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE) ENVELOPE The envelope of the message. The envelope is computed by the server by parsing the RFC 822 header into the component parts, defaulting various fields as necessary. FAST Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE)Crispin [Page 11]RFC 1064 IMAP2 July 1988 FLAGS The flags which are set for this message. This may include the following system flags: \RECENT Message arrived since last read of this mail file \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 INTERNALDATE The date and time the message was written to the mailbox. RFC822 The message in RFC 822 format. RFC822.HEADER The RFC 822 format header of the message. RFC822.SIZE The number of characters in the message as expressed in RFC 822 format. RFC822.TEXT The text body of the message, omitting the RFC 822 header. EXAMPLES: A003 FETCH 2:4 ALL fetches the flags, internal date, RFC 822 size, and envelope for messages 2, 3, and 4. A004 FETCH 3 RFC822 fetches the RFC 822 representation for message 3. A005 FETCH 4 (FLAGS RFC822.HEADER) fetches the flags and RFC 822 format header for message 4. tag STORE sequence data value The STORE command alters data associated with a message in the mailbox. The currently defined data items that can be stored are: FLAGS Replace the flags for the message with the argument (in flag list format). +FLAGS Add the flags in the argument to the message's flag list.Crispin [Page 12]RFC 1064 IMAP2 July 1988 -FLAGS Remove the flags in the argument from the message's flag list. STORE is not allowed if the user does not have write access to this mailbox. EXAMPLE: A003 STORE 2:4 +FLAGS (\DELETED) marks messages 2, 3, and 4 for deletion. tag SEARCH search_criteria The SEARCH command searches the mailbox for messages which match the given set of criteria. The unsolicited SEARCH <1#number> response from the server is a list of messages which express the intersection (AND function) of all the messages. The currently defined criteria are: ALL All messages in the mailbox; the default initial criterion for ANDing. ANSWERED Messages with the \ANSWERED flag set. BCC string Messages which contain the specified string in the envelope's BCC field. BEFORE date Messages whose internal date is earlier than the specified date. BODY string Messages which contain the specified string in the body of the message. CC string Messages which contain the specified string in the envelope's CC field. DELETED Messages with the \DELETED flag set. FLAGGED Messages with the \FLAGGED flag set. KEYWORD flag Messages with the specified flag set. NEW Messages which have the \RECENT flag set but not the \SEEN flag. This is functionally equivalent to "RECENT UNSEEN". OLD Messages which do not have the \RECENT flag set.Crispin [Page 13]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -