RFC1730 - Internet Message Access Protocol - Version 4(3)

时间:2005-02-14 来源: 作者: 点击:
((NIL NIL "minutes" "CNRI.Reston.VA.US") ("John Klensin" NIL "KLENSIN" "INFOODS.MIT.EDU")) NIL NIL " B27397-0100000@cac.washington.edu ") BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 30
  
((NIL NIL "minutes" "CNRI.Reston.VA.US")
("John Klensin" NIL "KLENSIN" "INFOODS.MIT.EDU")) NIL NIL
"<B27397-0100000@cac.washington.edu>")
BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028 92))
S: a003 OK FETCH completed
C: a004 fetch 12 rfc822.header
S: * 12 FETCH (RFC822.HEADER {346}
S: Date: Wed, 14 Jul 1993 02:23:25 -0700 (PDT)
S: From: Terry Gray <gray@cac.washington.edu>
S: Subject: IMAP4 WG mtg summary and minutes
S: To: imap@cac.washington.edu
S: cc: minutes@CNRI.Reston.VA.US, John Klensin <KLENSIN@INFOODS.MIT.EDU>
S: Message-Id: <B27397-0100000@cac.washington.edu>
S: MIME-Version: 1.0
S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S: )
S: a004 OK FETCH completed
C: a005 store 12 +flags \deleted
S: * 12 FETCH (FLAGS (\Seen \Deleted))
S: a005 OK +FLAGS completed
C: a006 logout
S: * BYE IMAP4 server terminating connection
S: a006 OK LOGOUT completed

9. Formal Syntax

The following syntax specification uses the augmented Backus-Naur
Form (BNF) notation as specified in [RFC-822] with one exception; the
delimiter used with the "#" construct is a single space (SPACE) and
not a comma.

Except as noted otherwise, all alphabetic characters are
case-insensitive. The use of upper or lower case characters to
define token strings is for editorial clarity only. Implementations
MUST accept these strings in a case-insensitive fashion.

Syntax marked as obsolete may be encountered with implementations
written for an earlier version of this protocol (e.g. IMAP2). New
implementations SHOULD accept obsolete syntax as input, but MUST NOT
otherwise use such syntax.

address ::= "(" addr_name SPACE addr_adl SPACE addr_mailbox
SPACE addr_host ")"

addr_adl ::= nstring

addr_host ::= nstring
;; NIL indicates [RFC-822] group syntax

addr_mailbox ::= nstring
;; NIL indicates end of [RFC-822] group; if
;; non-NIL and addr_host is NIL, holds
;; [RFC-822] group name

addr_name ::= nstring

alpha ::= "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H" /
"I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" /
"Q" / "R" / "S" / "T" / "U" / "V" / "W" / "X" /
"Y" / "Z" /
"a" / "b" / "c" / "d" / "e" / "f" / "g" / "h" /
"i" / "j" / "k" / "l" / "m" / "n" / "o" / "p" /
"q" / "r" / "s" / "t" / "u" / "v" / "w" / "x" /
"y" / "z" /
;; Case-sensitive

append ::= "APPEND" SPACE mailbox [SPACE flag_list]
[SPACE date_time] SPACE literal

astring ::= atom / string

atom ::= 1*ATOM_CHAR

ATOM_CHAR ::= <any CHAR except atom_specials>

atom_specials ::= "(" / ")" / "{" / SPACE / CTLs / list_wildcards /
quoted_specials

authenticate ::= "AUTHENTICATE" SPACE auth_type *(CRLF base64)

auth_type ::= atom

base64 ::= *(4base64_char) [base64_terminal]

base64_char ::= alpha / digit / "+" / "/"

base64_terminal ::= (2base64_char "==") / (3base64_char "=")

body ::= "(" body_type_1part / body_type_mpart ")"

body_extension ::= nstring / number / "(" 1#body_extension ")"
;; Future expansion. Client implementations
;; MUST accept body_extension fields. Server
;; implementations MUST NOT generate
;; body_extension fields except as defined by
;; future standard or standards-track
;; revisions of this specification.

body_ext_1part ::= body_fld_md5 [SPACE 1#body_extension]
;; MUST NOT be returned on non-extensible
;; "BODY" fetch

body_ext_mpart ::= body_fld_param [SPACE 1#body_extension]]
;; MUST NOT be returned on non-extensible
;; "BODY" fetch

body_fields ::= body_fld_param SPACE body_fld_id SPACE
body_fld_desc SPACE body_fld_enc SPACE
body_fld_octets

body_fld_desc ::= nstring

body_fld_enc ::= (<"> ("7BIT" / "8BIT" / "BINARY" / "BASE64"/
"QUOTED-PRINTABLE") <">) / string

body_fld_id ::= nstring

body_fld_lines ::= number

body_fld_md5 ::= nstring

body_fld_octets ::= number

body_fld_param ::= "(" 1#(string string) ")" / nil

body_fld_subtyp ::= string

body_type_1part ::= (body_type_basic / body_type_msg / body_type_text)
[SPACE body_ext_1part]

body_type_basic ::= (<"> ("APPLICATION" / "AUDIO" / "IMAGE" /
"MESSAGE" / "VIDEO") <">) / string) SPACE
body_fld_subtyp SPACE body_fields
;; MESSAGE subtype MUST NOT be "RFC822"

body_type_mpart ::= 1*body SPACE body_fld_subtyp
[SPACE body_ext_mpart]

body_type_msg ::= <"> "MESSAGE" <"> SPACE <"> "RFC822" <"> SPACE
body_fields SPACE envelope SPACE body SPACE
body_fld_lines

body_type_text ::= <"> "TEXT" <"> SPACE body_fld_subtyp SPACE
body_fields SPACE body_fld_lines

capability ::= atom
;; Must begin with "X" or be registered with
;; IANA as standard or standards-track

capability_data ::= "CAPABILITY" SPACE "IMAP4" [SPACE 1#capability]

CHAR ::= <any 7-bit US-ASCII character except NUL,
0x01 - 0x7f>

CHAR8 ::= <any 8-bit octet except NUL, 0x01 - 0xff>

command ::= tag SPACE (command_any / command_auth /
command_nonauth / command_select) CRLF
;; Modal based on state

command_any ::= "CAPABILITY" / "LOGOUT" / "NOOP" / x_command
;; Valid in all states

command_auth ::= append / create / delete / examine / find / list /
lsub / rename / select / subscribe / unsubscribe /
;; Valid only in Authenticated or Selected state

command_nonauth ::= login / authenticate
;; Valid only when in Non-Authenticated state

command_select ::= "CHECK" / "CLOSE" / "EXPUNGE" /
copy / fetch / partial / store / uid / search
;; Valid only when in Selected state

continue_req ::= "+" SPACE (resp_text / base64)

copy ::= "COPY" SPACE set SPACE mailbox

CR ::= <ASCII CR, carriage return, 0x0C>

create ::= "CREATE" SPACE mailbox
;; Use of INBOX gives a NO error

CRLF ::= CR LF

CTL ::= <any ASCII control character and DEL,
0x00 - 0x1f, 0x7f>

date ::= date_text / <"> date_text <">

date_day ::= 1*2digit
;; Day of month

date_day_fixed ::= (SPACE digit) / 2digit
;; Fixed-format version of date_day

date_month ::= "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" /
"Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec"

date_text ::= date_day "-" date_month "-" (date_year /
date_year_old)

date_year ::= 4digit

date_year_old ::= 2digit
;; OBSOLETE, (year - 1900)

date_time ::= <"> (date_time_new / date_time_old) <">

date_time_new ::= date_day_fixed "-" date_month "-" date_year
SPACE time SPACE zone

date_time_old ::= date_day_fixed "-" date_month "-" date_year_old
SPACE time "-" zone_old
;; OBSOLETE

delete ::= "DELETE" SPACE mailbox
;; Use of INBOX gives a NO error

digit ::= "0" / digit_nz

digit_nz ::= "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" /
"9"

envelope ::= "(" env_date SPACE env_subject SPACE env_from
SPACE env_sender SPACE env_reply-to SPACE env_to
SPACE env_cc SPACE env_bcc SPACE env_in-reply-to
SPACE env_message-id ")"

env_bcc ::= "(" 1*address ")" / nil

env_cc ::= "(" 1*address ")" / nil

env_date ::= nstring

env_from ::= "(" 1*address ")" / nil

env_in-reply-to ::= nstring

env_message-id ::= nstring

env_reply-to ::= "(" 1*address ")" / nil

env_sender ::= "(" 1*address ")" / nil

env_subject ::= nstring

env_to ::= "(" 1*address ")" / nil

examine ::= "EXAMINE" SPACE mailbox

fetch ::= "FETCH" SPACE set SPACE ("ALL" / "FULL" /
"FAST" / fetch_att / "(" 1#fetch_att ")")

fetch_att ::= "BODY" / "BODYSTRUCTURE" /
"BODY" [".PEEK"] "[" section "]" / "ENVELOPE" /
"FLAGS" / "INTERNALDATE" / "UID" /
"RFC822" (([".TEXT"] [".PEEK"]) / ".SIZE" /
(".HEADER" [".LINES" [".NOT"] SPACE header_list])

find ::= "FIND" SPACE ["ALL."] "MAILBOXES" SPACE
list_mailbox
;; OBSOLETE

flag ::= "\Answered" / "\Flagged" / "\Deleted" /
"\Seen" / "\Draft" / flag_keyword /
flag_extension

flag_extension ::= "\" atom
;; Future expansion. Client implementations
;; MUST accept flag_extension flags. Server
;; implementations MUST NOT generate
;; flag_extension flags except as defined by
;; future standard or standards-track
;; revisions of this specification.

flag_keyword ::= atom

flag_list ::= "(" #flag ")"

greeting ::= "*" SPACE (resp_cond_auth / resp_cond_bye) CRLF

header_line ::= astring

header_list ::= "(" 1#header_line ")"

LF ::= <ASCII LF, line feed, 0x0A>

list ::= "LIST" SPACE mailbox SPACE list_mailbox

list_mailbox ::= 1*(ATOM_CHAR / list_wildcards) / string

list_wildcards ::= "%" / "*"

literal ::= "{" number "}" CRLF *CHAR8
;; Number represents the number of CHAR8 octets

login ::= "LOGIN" SPACE userid SPACE password

lsub ::= "LSUB" SPACE mailbox SPACE list_mailbox

mailbox ::= "INBOX" / astring
;; INBOX is case-insensitive; other names may be
;; case-sensitive depending on implementation.

mailbox_data ::= "FLAGS" SPACE flag_list /
"LIST" SPACE mailbox_list /
"LSUB" SPACE mailbox_list /
"MAILBOX" SPACE text /
"SEARCH" [SPACE 1#nz_number] /
number SPACE "EXISTS" / number SPACE "RECENT"

mailbox_list ::= "(" #("\Marked" / "\Noinferiors" /
"\Noselect" / "\Unmarked" / flag_extension) ")"
SPACE (<"> QUOTED_CHAR <"> / nil) SPACE mailbox

message_data ::= nz_number SPACE ("EXPUNGE" /
("FETCH" SPACE msg_fetch) / msg_obsolete)

msg_fetch ::= "(" 1#("BODY" SPACE body /
"BODYSTRUCTURE" SPACE body /
"BODY[" section "]" SPACE nstring /
"ENVELOPE" SPACE envelope /
"FLAGS" SPACE "(" #(flag / "\Recent") ")" /
"INTERNALDATE" SPACE date_time /
"RFC822" [".HEADER" / ".TEXT"] SPACE nstring /
"RFC822.SIZE" SPACE number /
"UID" SPACE uniqueid) ")"

msg_obsolete ::= "COPY" / ("STORE" SPACE msg_fetch)
;; OBSOLETE untagged data responses

nil ::= "NIL"

nstring ::= string / nil

number ::= 1*digit
;; Unsigned 32-bit integer
;; (0 <= n < 4,294,967,296)

nz_number ::= digit_nz *digit
;; Non-zero unsigned 32-bit integer
;; (0 < n < 4,294,967,296)

partial ::= "PARTIAL" SPACE nz_number SPACE
("BODY" [".PEEK"] "[" section "]" /
"RFC822" (([".TEXT"] [".PEEK"]) / ".HEADER")
SPACE number SPACE number

password ::= astring

quoted ::= <"> *QUOTED_CHAR <">

QUOTED_CHAR ::= <any TEXT_CHAR except quoted_specials> /
"\" quoted_specials

quoted_specials ::= <"> / "\"

rename ::= "RENAME" SPACE mailbox SPACE mailbox
;; Use of INBOX as a destination gives a NO error

response ::= *response_data response_done

response_data ::= "*" SPACE (resp_cond_state / resp_cond_bye /
mailbox_data / message_data / capability_data)
CRLF

response_done ::= response_tagged / response_fatal

response_fatal ::= "*" SPACE resp_cond_bye CRLF

response_tagged ::= tag SPACE resp_cond_state CRLF

resp_cond_auth ::= ("OK" / "PREAUTH") SPACE resp_text
;; Authentication condition

resp_cond_bye ::= "BYE" SPACE resp_text
;; Server will disconnect condition

resp_cond_state ::= ("OK" / "NO" / "BAD") SPACE resp_text
;; Status condition

resp_text ::= ["[" resp_text_code "]" SPACE] (text_mime2 / text)

resp_text_code ::= "ALERT" / "PARSE" /
"PERMANENTFLAGS" SPACE "(" #(flag / "\*") ")" /
"READ-ONLY" / "READ-WRITE" / "TRYCREATE" /
"UIDVALIDITY" SPACE nz_number /
"UNSEEN" SPACE nz_number /
atom [SPACE 1*<any TEXT_CHAR except "]">]

search ::= "SEARCH" SPACE ["CHARSET" SPACE astring SPACE]
search_criteria
;; Character set must be registered with IANA
;; as a MIME character set

search_criteria ::= 1#search_key

search_key ::= search_new / search_old

search_new ::= "DRAFT" /
"HEADER" SPACE header_line SPACE astring /
"LARGER" SPACE number / "NOT" SPACE search_key /
"OR" SPACE search_key SPACE search_key /
"SENTBEFORE" SPACE date / "SENTON" SPACE date /
"SENTSINCE" SPACE date / "SMALLER" SPACE number /
"UID" SPACE set / "UNDRAFT" / set /
"(" search_criteria ")"
;; New in IMAP4

search_old ::= "ALL" / "ANSWERED" / "BCC" SPACE astring /
"BEFORE" SPACE date / "BODY" SPACE astring /
"CC" SPACE astring / "DELETED" / "FLAGGED" /
"FROM" SPACE astring /
"KEYWORD" SPACE flag_keyword / "NEW" / "OLD" /
"ON" SPACE date / "RECENT" / "SEEN" /
"SINCE" SPACE date / "SUBJECT" SPACE astring /
"TEXT" SPACE astring / "TO" SPACE astring /
"UNANSWERED" / "UNDELETED" / "UNFLAGGED" /
"UNKEYWORD" SPACE flag_keyword / "UNSEEN"
;; Defined in [IMAP2]

section ::= "0" / nz_number ["." section]

select ::= "SELECT" SPACE mailbox

sequence_num ::= nz_number / "*"
;; * is the largest number in use. For message
;; sequence numbers, it is the number of messages
;; in the mailbox. For unique identifiers, it is
;; the unique identifier of the last message in
;; the mailbox.

set ::= sequence_num / (sequence_num ":" sequence_num) /
(set "," set)
;; Identifies a set of messages. For message
;; sequence numbers, these are consecutive
;; numbers from 1 to the number of messages in
;; the mailbox
;; Comma delimits individual numbers, colon
;; delimits between two numbers inclusive.
;; Example: 2,4:7,9,12:* is 2,4,5,6,7,9,12,13,
;; 14,15 for a mailbox with 15 messages.

SPACE ::= <ASCII SP, space, 0x20>

store ::= "STORE" SPACE set SPACE store_att_flags

store_att_flags ::= (["+" / "-"] "FLAGS" [".SILENT"]) SPACE
(flag_list / #flag)

string ::= quoted / literal

subscribe ::= ("SUBSCRIBE" SPACE mailbox) / subscribe_obs

subscribe_obs ::= "SUBSCRIBE" SPACE "MAILBOX" SPACE mailbox
;;OBSOLETE

tag ::= 1*<any ATOM_CHAR except "+">

text ::= 1*TEXT_CHAR

text_mime2 ::= "=?" <charset> "?" <encoding> "?"
<encoded-text> "?="
;; Syntax defined in [MIME-2]

TEXT_CHAR ::= <any CHAR except CR and LF>

time ::= 2digit ":" 2digit ":" 2digit
;; Hours minutes seconds

uid ::= "UID" SPACE (copy / fetch / search / store)
;; Unique identifiers used instead of message
;; sequence numbers

uniqueid ::= nz_number
;; Strictly ascending

unsubscribe ::= ("UNSUBSCRIBE" SPACE mailbox) / unsubscribe_obs

unsubscribe_obs ::= "UNSUBSCRIBE" SPACE "MAILBOX" SPACE mailbox
;;OBSOLETE

userid ::= astring

x_command ::= "X" atom <experimental command arguments>

zone ::= ("+" / "-") 4digit
;; Signed four-digit value of hhmm representing
;; hours and minutes west of Greenwich (that is,
;; (the amount that the given time differs from
;; Universal Time). Subtracting the timezone
;; from the given time will give the UT form.
;; The Universal Time zone is "+0000".

zone_old ::= "UT" / "GMT" / "Z" / ;; +0000
"AST" / "EDT" / ;; -0400
"EST" / "CDT" / ;; -0500
"CST" / "MDT" / ;; -0600
"MST" / "PDT" / ;; -0700
"PST" / "YDT" / ;; -0800
"YST" / "HDT" / ;; -0900
"HST" / "BDT" / ;; -1000
"BST" / ;; -1100
"A" / "B" / "C" / "D" / "E" / "F" / ;; +1 to +6
"G" / "H" / "I" / "K" / "L" / "M" / ;; +7 to +12
"N" / "O" / "P" / "Q" / "R" / "S" / ;; -1 to -6
"T" / "U" / "V" / "W" / "X" / "Y" ;; -7 to -12
;; OBSOLETE

10. Author's Note

This document is a revision or rewrite of earlier documents, and
supercedes the protocol specification in those documents: IMAP4
Internet drafts, the IMAP2bis Internet drafts, unpublished
IMAP2bis.TXT document, RFC1176, and RFC1064.

11. Security Considerations

IMAP4 protocol transactions, including electronic mail data, are sent
in the clear over the network unless the optional privacy protection
is negotiated in the AUTHENTICATE command.

A server error message for an AUTHENTICATE command which fails due to
invalid credentials should not detail why the credentials are
invalid.

Use of the LOGIN command sends passwords in the clear. This can be
avoided by using the AUTHENTICATE command instead.

A server error message for a failing LOGIN command should not specify
that the user name, as opposed to the password, is invalid.

Additional security considerations are discussed in the section
discussing the AUTHENTICATE and LOGIN commands.

12. Author's Address

Mark R. Crispin
Networks and Distributed Computing, JE-30
University of Washington
Seattle, WA 98195

Phone: (206) 543-5762

EMail: MRC@CAC.Washington.EDU

Appendices

A. Obsolete Commands

The following commands are OBSOLETE. It is NOT required to support
any of these commands in new server implementations. These commands
are documented here for the benefit of implementors who may wish to
support them for compatibility with old client implementations.

The section headings of these commands are intended to correspond
with where they would be located in the main document if they were
not obsoleted.

A.6.3.OBS.1. FIND ALL.MAILBOXES Command

Arguments: mailbox name with possible wildcards

Data: untagged responses: MAILBOX

Result: OK - find completed
NO - find failure: can't list that name
BAD - command unknown or arguments invalid

The FIND ALL.MAILBOXES command returns a subset of names from the
complete set of all names available to the user. It returns zero
or more untagged MAILBOX replies. The mailbox argument to FIND
ALL.MAILBOXES is similar to that for LIST with an empty reference,
except that the characters "%" and "?" match a single character.

Example: C: A002 FIND ALL.MAILBOXES *
S: * MAILBOX blurdybloop
S: * MAILBOX INBOX
S: A002 OK FIND ALL.MAILBOXES completed

A.6.3.OBS.2. FIND MAILBOXES Command

Arguments: mailbox name with possible wildcards

Data: untagged responses: MAILBOX

Result: OK - find completed
NO - find failure: can't list that name
BAD - command unknown or arguments invalid

The FIND MAILBOXES command returns a subset of names from the set
of names that the user has declared as being "active" or

"subscribed". It returns zero or more untagged MAILBOX replies.
The mailbox argument to FIND MAILBOXES is similar to that for LSUB
with an empty reference, except that the characters "%" and "?"
match a single character.

Example: C: A002 FIND MAILBOXES *
S: * MAILBOX blurdybloop
S: * MAILBOX INBOX
S: A002 OK FIND MAILBOXES completed

A.6.3.OBS.3. SUBSCRIBE MAILBOX Command

Arguments: mailbox name

Data: no specific data for this command

Result: OK - subscribe completed
NO - subscribe failure: can't subscribe to that name
BAD - command unknown or arguments invalid

The SUBSCRIBE MAILBOX command is identical in effect to the
SUBSCRIBE command. A server which implements this command must be
able to distinguish between a SUBSCRIBE MAILBOX command and a
SUBSCRIBE command with a mailbox name argument of "MAILBOX".

Example: C: A002 SUBSCRIBE MAILBOX #news.comp.mail.mime
S: A002 OK SUBSCRIBE MAILBOX to #news.comp.mail.mime
completed
C: A003 SUBSCRIBE MAILBOX
S: A003 OK SUBSCRIBE to MAILBOX completed

A.6.3.OBS.4. UNSUBSCRIBE MAILBOX Command

Arguments: mailbox name

Data: no specific data for this command

Result: OK - unsubscribe completed
NO - unsubscribe failure: can't unsubscribe that name
BAD - command unknown or arguments invalid

The UNSUBSCRIBE MAILBOX command is identical in effect to the
UNSUBSCRIBE command. A server which implements this command must
be able to distinguish between a UNSUBSCRIBE MAILBOX command and
an UNSUBSCRIBE command with a mailbox name argument of "MAILBOX".

Example: C: A002 UNSUBSCRIBE MAILBOX #news.comp.mail.mime
S: A002 OK UNSUBSCRIBE MAILBOX from #news.comp.mail.mime
completed
C: A003 UNSUBSCRIBE MAILBOX
S: A003 OK UNSUBSCRIBE from MAILBOX completed

B. Obsolete Responses

The following responses are OBSOLETE. Except as noted below, these
responses MUST NOT be transmitted by new server implementations.

The section headings of these responses are intended to correspond
with where they would be located in the main document if they were
not obsoleted.

B.7.2.OBS.1. MAILBOX Response

Data: name

The MAILBOX response MUST NOT be transmitted by server
implementations except in response to the obsolete FIND MAILBOXES
and FIND ALL.MAILBOXES commands. Client implementations that do
not use these commands MAY ignore this response. It is documented
here for the benefit of implementors who may wish to support it
for compatibility with old client implementations.

This response occurs as a result of the FIND MAILBOXES and FIND
ALL.MAILBOXES commands. It returns a single name that matches the
FIND specification. There are no attributes or hierarchy
delimiter.

Example: S: * MAILBOX blurdybloop

B.7.3.OBS.1. COPY Response

Data: none

The COPY response MUST NOT be transmitted by new server
implementations. Client implementations MUST ignore the COPY
response. It is documented here for the benefit of client
implementors who may encounter this response from old server
implementations.

In some experimental versions of this protocol, this response was
returned in response to a COPY command to indicate on a
per-message basis that the message was copied successfully.

Example: S: * 44 COPY

B.7.3.OBS.2. STORE Response

Data: message data

The STORE response MUST NOT be transmitted by new server
implementations. Client implementations MUST treat the STORE
response as equivalent to the FETCH response. It is documented
here for the benefit of client implementors who may encounter this
response from old server implementations.

In some experimental versions of this protocol, this response was
returned instead of FETCH in response to a STORE command to report
the new value of the flags.

Example: S: * 69 STORE (FLAGS (\Deleted))

C. References

[IMAP-AUTH] Myers, J., "IMAP4 Authentication Mechanism", RFC1731.
Carnegie-Mellon University, December 1994.

[IMAP-COMPAT] Crispin, M. "IMAP4 Compatibility with IMAP2 and
IMAP2bis", RFC1732, University of Washington, December 1994.

[IMAP-DISC] Austein, R. "Synchronization Operations for Disconnected
IMAP4 Clients", Work in Progress.

[IMAP-MODEL] Crispin, M. "Distributed Electronic Mail Models in
IMAP4", RFC1733, University of Washington, December 1994.

[IMAP-NAMING] Crispin, M. "Mailbox Naming Convention in IMAP4", Work
in Progress.

[IMAP2] Crispin, M., "Interactive Mail Access Protocol - Version 2",
RFC1176, University of Washington, August 1990.

[IMSP] Myers, J. "IMSP -- Internet Message Support Protocol", Work in
Progress.

[MIME-1] Borenstein, N., and Freed, N., "MIME (Multipurpose Internet
Mail Extensions) Part One: Mechanisms for Specifying and Describing
the Format of Internet Message Bodies", RFC1521, Bellcore, Innosoft,
September 1993.

[MIME-2] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
Part Two: Message Header Extensions for Non-ASCII Text", RFC1522,
University of Tennessee, September 1993.

[RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text
Messages", STD 11, RFC822, University of Delaware, August 1982.

[SMTP] Postel, Jonathan B. "Simple Mail Transfer Protocol", STD 10,
RFC821, USC/Information Sciences Institute, August 1982.

E. IMAP4 Keyword Index

+FLAGS <flag list> (store command data item) ............... 34
+FLAGS.SILENT <flag list> (store command data item) ........ 34
-FLAGS <flag list> (store command data item) ............... 34
-FLAGS.SILENT <flag list> (store command data item) ........ 34
ALERT (response code) ...................................... 39
ALL (fetch item) ........................................... 29
ALL (search key) ........................................... 27
ANSWERED (search key) ...................................... 27
APPEND (command) ........................................... 22
AUTHENTICATE (command) ..................................... 12
BAD (response) ............................................. 41
BCC <string> (search key) .................................. 27
BEFORE <date> (search key) ................................. 27
BODY (fetch item) .......................................... 29
BODY (fetch result) ........................................ 46
BODY <string> (search key) ................................. 27
BODY.PEEK[<section>] (fetch item) .......................... 30
BODYSTRUCTURE (fetch item) ................................. 31
BODYSTRUCTURE (fetch result) ............................... 47
BODY[<section>] (fetch item) ............................... 29
BODY[section] (fetch result) ............................... 46
BYE (response) ............................................. 41
CAPABILITY (command) ....................................... 10
CAPABILITY (response) ...................................... 42
CC <string> (search key) ................................... 27
CHECK (command) ............................................ 23
CLOSE (command) ............................................ 24
COPY (command) ............................................. 34
COPY (response) ............................................ 68
CREATE (command) ........................................... 17
DELETE (command) ........................................... 18
DELETED (search key) ....................................... 27
DRAFT (search key) ......................................... 27
ENVELOPE (fetch item) ...................................... 31
ENVELOPE (fetch result) .................................... 49
EXAMINE (command) .......................................... 16
EXISTS (response) .......................................... 45
EXPUNGE (command) .......................................... 25
EXPUNGE (response) ......................................... 45
FAST (fetch item) .......................................... 31
FETCH (command) ............................................ 29
FETCH (response) ........................................... 46
FIND ALL.MAILBOXES (command) ............................... 65
FIND MAILBOXES (command) ................................... 65
FLAGGED (search key) ....................................... 27
FLAGS (fetch item) ......................................... 31

FLAGS (fetch result) ....................................... 50
FLAGS (response) ........................................... 44
FLAGS <flag list> (store command data item) ................ 34
FLAGS.SILENT <flag list> (store command data item) ......... 34
FROM <string> (search key) ................................. 27
FULL (fetch item) .......................................... 31
HEADER <field-name> <string> (search key) .................. 27
INTERNALDATE (fetch item) .................................. 31
INTERNALDATE (fetch result) ................................ 50
KEYWORD <flag> (search key) ................................ 27
LARGER <n> (search key) .................................... 27
LIST (command) ............................................. 20
LIST (response) ............................................ 43
LOGIN (command) ............................................ 14
LOGOUT (command) ........................................... 11
LSUB (command) ............................................. 22
LSUB (response) ............................................ 44
MAILBOX (response) ......................................... 68
NEW (search key) ........................................... 27
NO (response) .............................................. 40
NOOP (command) ............................................. 11
NOT <search-key> (search key) .............................. 28
OK (response) .............................................. 40
OLD (search key) ........................................... 28
ON <date> (search key) ..................................... 28
OR <search-key1> <search-key2> (search key) ................ 28
PARSE (response code) ...................................... 39
PARTIAL (command) .......................................... 32
PERMANENTFLAGS (response code) ............................. 39
PREAUTH (response) ......................................... 41
READ-ONLY (response code) .................................. 39
READ-WRITE (response code) ................................. 39
RECENT (response) .......................................... 45
RECENT (search key) ........................................ 28
RENAME (command) ........................................... 18
RFC822 (fetch item) ........................................ 31
RFC822 (fetch result) ...................................... 50
RFC822.HEADER (fetch item) ................................. 31
RFC822.HEADER (fetch result) ............................... 50
RFC822.HEADER.LINES <header_list> (fetch item) ............. 31
RFC822.HEADER.LINES.NOT <header_list> (fetch item) ......... 32
RFC822.PEEK (fetch item) ................................... 31
RFC822.SIZE (fetch item) ................................... 32
RFC822.SIZE (fetch result) ................................. 50
RFC822.TEXT (fetch item) ................................... 32
RFC822.TEXT (fetch result) ................................. 51
RFC822.TEXT.PEEK (fetch item) .............................. 32
SEARCH (command) ........................................... 25

SEARCH (response) .......................................... 44
SEEN (search key) .......................................... 28
SELECT (command) ........................................... 15
SENTBEFORE <date> (search key) ............................. 28
SENTON <date> (search key) ................................. 28
SENTSINCE <date> (search key) .............................. 28
SINCE <date> (search key) .................................. 28
SMALLER <n> (search key) ................................... 28
STORE (command) ............................................ 33
STORE (response) ........................................... 69
SUBJECT <string> (search key) .............................. 28
SUBSCRIBE (command) ........................................ 19
SUBSCRIBE MAILBOX (command) ................................ 66
TEXT <string> (search key) ................................. 28
TO <string> (search key) ................................... 28
TRYCREATE (response code) .................................. 39
UID (command) .............................................. 35
UID (fetch item) ........................................... 32
UID (fetch result) ......................................... 51
UID <message set> (search key) ............................. 28
UIDVALIDITY (response code) ................................ 40
UNANSWERED (search key) .................................... 29
UNDELETED (search key) ..................................... 29
UNDRAFT (search key) ....................................... 29
UNFLAGGED (search key) ..................................... 29
UNKEYWORD <flag> (search key) .............................. 29
UNSEEN (response code) ..................................... 40
UNSEEN (search key) ........................................ 29
UNSUBSCRIBE (command) ...................................... 19
UNSUBSCRIBE MAILBOX (command) .............................. 66
X<atom> (command) .......................................... 37
\Answered (system flag) .................................... 50
\Deleted (system flag) ..................................... 50
\Draft (system flag) ....................................... 50
\Flagged (system flag) ..................................... 50
\Marked (mailbox name attribute) ........................... 43
\Noinferiors (mailbox name attribute) ...................... 43
\Noselect (mailbox name attribute) ......................... 43
\Recent (system flag) ...................................... 50
\Seen (system flag) ........................................ 50
\Unmarked (mailbox name attribute) ......................... 43
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容