annotate docs/rfc/rfc1733.txt @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
1
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
2
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
3
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
4
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
5
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
6
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
7 Network Working Group M. Crispin
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
8 Request for Comments: 1733 University of Washington
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
9 Category: Informational December 1994
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
10
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
11
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
12 DISTRIBUTED ELECTRONIC MAIL MODELS IN IMAP4
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
13
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
14
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
15 Status of this Memo
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
16
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
17 This memo provides information for the Internet community. This memo
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
18 does not specify an Internet standard of any kind. Distribution of
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
19 this memo is unlimited.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
20
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
21
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
22 Distributed Electronic Mail Models
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
23
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
24 There are three fundamental models of client/server email: offline,
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
25 online, and disconnected use. IMAP4 can be used in any one of these
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
26 three models.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
27
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
28 The offline model is the most familiar form of client/server email
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
29 today, and is used by protocols such as POP-3 (RFC 1225) and UUCP.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
30 In this model, a client application periodically connects to a
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
31 server. It downloads all the pending messages to the client machine
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
32 and deletes these from the server. Thereafter, all mail processing
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
33 is local to the client. This model is store-and-forward; it moves
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
34 mail on demand from an intermediate server (maildrop) to a single
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
35 destination machine.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
36
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
37 The online model is most commonly used with remote filesystem
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
38 protocols such as NFS. In this model, a client application
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
39 manipulates mailbox data on a server machine. A connection to the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
40 server is maintained throughout the session. No mailbox data are
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
41 kept on the client; the client retrieves data from the server as is
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
42 needed. IMAP4 introduces a form of the online model that requires
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
43 considerably less network bandwidth than a remote filesystem
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
44 protocol, and provides the opportunity for using the server for CPU
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
45 or I/O intensive functions such as parsing and searching.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
46
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
47 The disconnected use model is a hybrid of the offline and online
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
48 models, and is used by protocols such as PCMAIL (RFC 1056). In this
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
49 model, a client user downloads some set of messages from the server,
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
50 manipulates them offline, then at some later time uploads the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
51 changes. The server remains the authoritative repository of the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
52 messages. The problems of synchronization (particularly when
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
53 multiple clients are involved) are handled through the means of
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
54 unique identifiers for each message.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
55
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
56
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
57
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
58 Crispin [Page 1]
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
59
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
60 RFC 1733 IMAP4 - Model December 1994
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
61
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
62
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
63 Each of these models have their own strengths and weaknesses:
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
64
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
65 Feature Offline Online Disc
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
66 ------- ------- ------ ----
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
67 Can use multiple clients NO YES YES
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
68 Minimum use of server connect time YES NO YES
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
69 Minimum use of server resources YES NO NO
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
70 Minimum use of client disk resources NO YES NO
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
71 Multiple remote mailboxes NO YES YES
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
72 Fast startup NO YES NO
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
73 Mail processing when not online YES NO YES
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
74
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
75 Although IMAP4 has its origins as a protocol designed to accommodate
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
76 the online model, it can support the other two models as well. This
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
77 makes possible the creation of clients that can be used in any of the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
78 three models. For example, a user may wish to switch between the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
79 online and disconnected models on a regular basis (e.g. owing to
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
80 travel).
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
81
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
82 IMAP4 is designed to transmit message data on demand, and to provide
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
83 the facilities necessary for a client to decide what data it needs at
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
84 any particular time. There is generally no need to do a wholesale
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
85 transfer of an entire mailbox or even of the complete text of a
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
86 message. This makes a difference in situations where the mailbox is
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
87 large, or when the link to the server is slow.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
88
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
89 More specifically, IMAP4 supports server-based RFC 822 and MIME
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
90 processing. With this information, it is possible for a client to
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
91 determine in advance whether it wishes to retrieve a particular
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
92 message or part of a message. For example, a user connected to an
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
93 IMAP4 server via a dialup link can determine that a message has a
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
94 2000 byte text segment and a 40 megabyte video segment, and elect to
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
95 fetch only the text segment.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
96
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
97 In IMAP4, the client/server relationship lasts only for the duration
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
98 of the TCP connection. There is no registration of clients. Except
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
99 for any unique identifiers used in disconnected use operation, the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
100 client initially has no knowledge of mailbox state and learns it from
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
101 the IMAP4 server when a mailbox is selected. This initial transfer
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
102 is minimal; the client requests additional state data as it needs.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
103
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
104 As noted above, the choice for the location of mailbox data depends
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
105 upon the model chosen. The location of message state (e.g. whether
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
106 or not a message has been read or answered) is also determined by the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
107 model, and is not necessarily the same as the location of the mailbox
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
108 data. For example, in the online model message state can be co-
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
109 located with mailbox data; it can also be located elsewhere (on the
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
110 client or on a third agent) using unique identifiers to achieve
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
111
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
112
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
113
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
114 Crispin [Page 2]
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
115
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
116 RFC 1733 IMAP4 - Model December 1994
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
117
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
118
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
119 common reference across sessions. The latter is particularly useful
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
120 with a server that exports public data such as netnews and does not
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
121 maintain per-user state.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
122
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
123 The IMAP4 protocol provides the generality to implement these
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
124 different models. This is done by means of server and (especially)
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
125 client configuration, and not by requiring changes to the protocol or
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
126 the implementation of the protocol.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
127
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
128
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
129 Security Considerations
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
130
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
131 Security issues are not discussed in this memo.
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
132
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
133
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
134 Author's Address:
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
135
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
136 Mark R. Crispin
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
137 Networks and Distributed Computing, JE-30
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
138 University of Washington
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
139 Seattle, WA 98195
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
140
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
141 Phone: (206) 543-5762
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
142
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
143 EMail: MRC@CAC.Washington.EDU
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
144
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
145
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
146
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
147
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
148
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
149
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
150
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
151
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
152
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
153
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
154
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
155
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
156
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
157
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
158
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
159
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
160
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
161
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
162
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
163
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
164
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
165
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
166
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
167
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
168
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
169
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
170 Crispin [Page 3]
ada5e610ab86 imap-2007e
yuuji@gentei.org
parents:
diff changeset
171

yatex.org