~ubuntu-branches/debian/stretch/alpine/stretch

« back to all changes in this revision

Viewing changes to imap/docs/rfc/rfc2193.txt

  • Committer: Package Import Robot
  • Author(s): Asheesh Laroia
  • Date: 2013-05-19 16:15:01 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20130519161501-epf6pfldn07xnd11
Tags: 2.10+dfsg-1
* New upstream release.
* This release ships a fix for an issue where the PREFDATETIME token
  was always set to "Sun" incorrectly. (Closes: #692870)
* This release ships a fix for IMAP-encoded non-ASCII folder names.
  (Closes: #674067)
* This release simplifies (and corrects) S/MIME handling for messages
  that encrypted *and* signed. (Closes: #653420)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
 
 
3
 
 
4
 
 
5
 
 
6
 
 
7
Network Working Group                                        M. Gahrns
 
8
Request for Comments: 2193                                   Microsoft
 
9
Category: Standards Track                               September 1997
 
10
 
 
11
 
 
12
                        IMAP4 Mailbox Referrals
 
13
 
 
14
Status of this Memo
 
15
 
 
16
   This document specifies an Internet standards track protocol for the
 
17
   Internet community, and requests discussion and suggestions for
 
18
   improvements.  Please refer to the current edition of the "Internet
 
19
   Official Protocol Standards" (STD 1) for the standardization state
 
20
   and status of this protocol.  Distribution of this memo is unlimited.
 
21
 
 
22
1. Abstract
 
23
 
 
24
   When dealing with large amounts of users, messages and geographically
 
25
   dispersed IMAP4 [RFC-2060] servers, it is often desirable to
 
26
   distribute messages amongst different servers within an organization.
 
27
   For example an administrator may choose to store user's personal
 
28
   mailboxes on a local IMAP4 server, while storing shared mailboxes
 
29
   remotely on another server.  This type of configuration is common
 
30
   when it is uneconomical to store all data centrally due to limited
 
31
   bandwidth or disk resources.
 
32
 
 
33
   Mailbox referrals allow clients to seamlessly access mailboxes that
 
34
   are distributed across several IMAP4 servers.
 
35
 
 
36
   A referral mechanism can provide efficiencies over the alternative
 
37
   "proxy method", in which the local IMAP4 server contacts the remote
 
38
   server on behalf of the client, and then transfers the data from the
 
39
   remote server to itself, and then on to the client.  The referral
 
40
   mechanism's direct client connection to the remote server is often a
 
41
   more efficient use of bandwidth, and does not require the local
 
42
   server to impersonate the client when authenticating to the remote
 
43
   server.
 
44
 
 
45
2. Conventions used in this document
 
46
 
 
47
   In examples, "C:" and "S:" indicate lines sent by the client and
 
48
   server respectively.
 
49
 
 
50
   A home server, is an IMAP4 server that contains the user's inbox.
 
51
 
 
52
   A remote mailbox is a mailbox that is not hosted on the user's home
 
53
   server.
 
54
 
 
55
 
 
56
 
 
57
 
 
58
Gahrns                      Standards Track                     [Page 1]
 
59
 
 
60
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
61
 
 
62
 
 
63
   A remote server is a server that contains remote mailboxes.
 
64
 
 
65
   A shared mailbox, is a mailbox that multiple users have access to.
 
66
 
 
67
   An IMAP mailbox referral is when the server directs the client to
 
68
   another IMAP mailbox.
 
69
 
 
70
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 
71
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
 
72
   document are to be interpreted as described in [RFC-2119].
 
73
 
 
74
3. Introduction and Overview
 
75
 
 
76
   IMAP4 servers that support this extension MUST list the keyword
 
77
   MAILBOX-REFERRALS in their CAPABILITY response.  No client action is
 
78
   needed to invoke the MAILBOX-REFERRALS capability in a server.
 
79
 
 
80
   A MAILBOX-REFERRALS capable IMAP4 server MUST NOT return referrals
 
81
   that result in a referrals loop.
 
82
 
 
83
   A referral response consists of a tagged NO response and a REFERRAL
 
84
   response code.  The REFERRAL response code MUST contain as an
 
85
   argument a one or more valid URLs separated by a space as defined in
 
86
   [RFC-1738]. If a server replies with multiple URLs for a particular
 
87
   object, they MUST all be of the same type. In this case, the URL MUST
 
88
   be an IMAP URL as defined in [RFC-2192].  A client that supports the
 
89
   REFERRALS extension MUST be prepared for a URL of any type, but it
 
90
   need only be able to process IMAP URLs.
 
91
 
 
92
   A server MAY respond with multiple IMAP mailbox referrals if there is
 
93
   more than one replica of the mailbox.  This allows the implementation
 
94
   of a load balancing or failover scheme. How a server keeps multiple
 
95
   replicas of a mailbox in sync is not addressed by this document.
 
96
 
 
97
   If the server has a preferred order in which the client should
 
98
   attempt to access the URLs, the preferred URL SHOULD be listed in the
 
99
   first, with the remaining URLs presented in descending order of
 
100
   preference.  If multiple referrals are given for a mailbox, a server
 
101
   should be aware that there are synchronization issues for a client if
 
102
   the UIDVALIDITY of the referred mailboxes are different.
 
103
 
 
104
   An IMAP mailbox referral may be given in response to an IMAP command
 
105
   that specifies a mailbox as an argument.
 
106
 
 
107
 
 
108
 
 
109
 
 
110
 
 
111
 
 
112
 
 
113
 
 
114
Gahrns                      Standards Track                     [Page 2]
 
115
 
 
116
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
117
 
 
118
 
 
119
   Example:
 
120
 
 
121
      A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/REMOTE]Remote Mailbox
 
122
 
 
123
   NOTE: user;AUTH=* is specified as required by [RFC-2192] to avoid a
 
124
   client falling back to anonymous login.
 
125
 
 
126
   Remote mailboxes and their inferiors, that are accessible only via
 
127
   referrals SHOULD NOT appear in LIST and LSUB responses issued against
 
128
   the user's home server.  They MUST appear in RLIST and RLSUB
 
129
   responses issued against the user's home server. Hierarchy referrals,
 
130
   in which a client would be required to connect to the remote server
 
131
   to issue a LIST to discover the inferiors of a mailbox are not
 
132
   addressed in this document.
 
133
 
 
134
   For example, if shared mailboxes were only accessible via referrals
 
135
   on a remote server, a RLIST "" "#SHARED/%" command would return the
 
136
   same response if issued against the user's home server or the remote
 
137
   server.
 
138
 
 
139
   Note: Mailboxes that are available on the user's home server do not
 
140
   need to be available on the remote server.  In addition, there may be
 
141
   additional mailboxes available on the remote server, but they will
 
142
   not accessible to the client via referrals unless they appear in the
 
143
   LIST response to the RLIST command against the user's home server.
 
144
 
 
145
   A MAILBOX-REFERRALS capable client will issue the RLIST and RLSUB
 
146
   commands in lieu of LIST and LSUB.  The RLIST and RLSUB commands
 
147
   behave identically to their LIST and LSUB counterparts, except remote
 
148
   mailboxes are returned in addition to local mailboxes in the LIST and
 
149
   LSUB responses.  This avoids displaying to a non MAILBOX-REFERRALS
 
150
   enabled client inaccessible remote mailboxes.
 
151
 
 
152
4.1. SELECT, EXAMINE, DELETE, SUBSCRIBE, UNSUBSCRIBE, STATUS and APPEND
 
153
     Referrals
 
154
 
 
155
   An IMAP4 server MAY respond to the SELECT, EXAMINE, DELETE,
 
156
   SUBSCRIBE, UNSUBSCRIBE, STATUS or APPEND command with one or more
 
157
   IMAP mailbox referrals to indicate to the client that the mailbox is
 
158
   hosted on a remote server.
 
159
 
 
160
   When a client processes an IMAP mailbox referral, it will open a new
 
161
   connection or use an existing connection to the remote server so that
 
162
   it is able to issue the commands necessary to process the remote
 
163
   mailbox.
 
164
 
 
165
 
 
166
 
 
167
 
 
168
 
 
169
 
 
170
Gahrns                      Standards Track                     [Page 3]
 
171
 
 
172
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
173
 
 
174
 
 
175
   Example:  <IMAP4 connection to home server>
 
176
 
 
177
      C: A001 DELETE "SHARED/FOO"
 
178
      S: A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/SHARED/FOO]
 
179
             Remote mailbox. Try SERVER2.
 
180
 
 
181
      <Client established a second connection to SERVER2 and
 
182
      issues the DELETE command on the referred mailbox>
 
183
 
 
184
      S: * OK IMAP4rev1 server ready
 
185
      C: B001 AUTHENTICATE KERBEROS_V4
 
186
      <authentication exchange>
 
187
      S: B001 OK user is authenticated
 
188
 
 
189
      C: B002 DELETE "SHARED/FOO"
 
190
      S: B002 OK DELETE completed
 
191
 
 
192
   Example:  <IMAP4 connection to home server>
 
193
 
 
194
      C: A001 SELECT REMOTE
 
195
      S: A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/REMOTE
 
196
          IMAP://user;AUTH=*@SERVER3/REMOTE] Remote mailbox.
 
197
          Try SERVER2 or SERVER3.
 
198
 
 
199
      <Client opens second connection to remote server, and
 
200
       issues the commands needed to process the items in the
 
201
       remote mailbox>
 
202
 
 
203
      S: * OK IMAP4rev1 server ready
 
204
      C: B001 AUTHENTICATE KERBEROS_V4
 
205
      <authentication exchange>
 
206
      S: B001 OK user is authenticated
 
207
 
 
208
      C: B002 SELECT REMOTE
 
209
      S: * 12 EXISTS
 
210
      S: * 1 RECENT
 
211
      S: * OK [UNSEEN 10] Message 10 is first unseen
 
212
      S: * OK [UIDVALIDITY 123456789]
 
213
      S: * FLAGS (Answered Flagged Deleted Seen Draft)
 
214
      S: * OK [PERMANENTFLAGS (Answered Deleted Seen ]
 
215
      S: B002 OK [READ-WRITE] Selected completed
 
216
 
 
217
      C: B003 FETCH 10:12 RFC822
 
218
      S: * 10 FETCH . . .
 
219
      S: * 11 FETCH . . .
 
220
      S: * 12 FETCH . . .
 
221
      S: B003 OK FETCH Completed
 
222
 
 
223
 
 
224
 
 
225
 
 
226
Gahrns                      Standards Track                     [Page 4]
 
227
 
 
228
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
229
 
 
230
 
 
231
      <Client is finished processing the REMOTE mailbox and
 
232
       wants to process a mailbox on its home server>
 
233
 
 
234
      C: B004 LOGOUT
 
235
      S: * BYE IMAP4rev1 server logging out
 
236
      S: B004 OK LOGOUT Completed
 
237
 
 
238
      <Client continues with first connection>
 
239
 
 
240
      C: A002 SELECT INBOX
 
241
      S: * 16 EXISTS
 
242
      S: * 2 RECENT
 
243
      S: * OK [UNSEEN 10] Message 10 is first unseen
 
244
      S: * OK [UIDVALIDITY 123456789]
 
245
      S: * FLAGS (Answered Flagged Deleted Seen Draft)
 
246
      S: * OK [PERMANENTFLAGS (Answered Deleted Seen ]
 
247
      S: A002 OK [READ-WRITE] Selected completed
 
248
 
 
249
4.2. CREATE Referrals
 
250
 
 
251
   An IMAP4 server MAY respond to the CREATE command with one or more
 
252
   IMAP mailbox referrals, if it wishes to direct the client to issue
 
253
   the CREATE against another server.  The server can employ any means,
 
254
   such as examining the hierarchy of the specified mailbox name, in
 
255
   determining which server the mailbox should be created on.
 
256
 
 
257
   Example:
 
258
 
 
259
      C: A001 CREATE "SHARED/FOO"
 
260
      S: A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/SHARED/FOO]
 
261
         Mailbox should be created on remote server
 
262
 
 
263
   Alternatively, because a home server is required to maintain a
 
264
   listing of referred remote mailboxes, a server MAY allow the creation
 
265
   of a mailbox that will ultimately reside on a remote server against
 
266
   the home server, and provide referrals on subsequent commands that
 
267
   manipulate the mailbox.
 
268
 
 
269
   Example:
 
270
 
 
271
      C: A001 CREATE "SHARED/FOO"
 
272
      S: A001 OK CREATE succeeded
 
273
 
 
274
      C: A002 SELECT "SHARED/FOO"
 
275
      S: A002 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/SHARED/FOO]
 
276
         Remote mailbox.  Try SERVER2
 
277
 
 
278
 
 
279
 
 
280
 
 
281
 
 
282
Gahrns                      Standards Track                     [Page 5]
 
283
 
 
284
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
285
 
 
286
 
 
287
4.3. RENAME Referrals
 
288
 
 
289
   An IMAP4 server MAY respond to the RENAME command with one or more
 
290
   pairs of IMAP mailbox referrals.  In each pair of IMAP mailbox
 
291
   referrals, the first one is an URL to the existing mailbox name and
 
292
   the second is an URL to the requested new mailbox name.
 
293
 
 
294
   If within an IMAP mailbox referral pair, the existing and new mailbox
 
295
   URLs are on different servers, the remote servers are unable to
 
296
   perform the RENAME operation.   To achieve the same behavior of
 
297
   server RENAME, the client MAY issue the constituent CREATE, FETCH,
 
298
   APPEND, and DELETE commands against both servers.
 
299
 
 
300
   If within an IMAP mailbox referral pair, the existing and new mailbox
 
301
   URLs are on the same server it is an indication that the currently
 
302
   connected server is unable to perform the operation.  The client can
 
303
   simply re-issue the RENAME command on the remote server.
 
304
 
 
305
   Example:
 
306
 
 
307
      C: A001 RENAME FOO BAR
 
308
      S: A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER1/FOO
 
309
              IMAP://user;AUTH=*@SERVER2/BAR] Unable to rename mailbox
 
310
              across servers
 
311
 
 
312
   Since the existing and new mailbox names are on different servers,
 
313
   the client would be required to make a connection to both servers and
 
314
   issue the constituent commands require to achieve the RENAME.
 
315
 
 
316
   Example:
 
317
 
 
318
      C: A001 RENAME FOO BAR
 
319
      S: A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/FOO
 
320
              IMAP://user;AUTH=*@SERVER2/BAR] Unable to rename mailbox
 
321
              located on SERVER2
 
322
 
 
323
   Since both the existing and new mailbox are on the same remote
 
324
   server, the client can simply make a connection to the remote server
 
325
   and re-issue the RENAME command.
 
326
 
 
327
4.4. COPY Referrals
 
328
 
 
329
   An IMAP4 server MAY respond to the COPY command with one or more IMAP
 
330
   mailbox referrals.  This indicates that the destination mailbox is on
 
331
   a remote server.  To achieve the same behavior of a server COPY, the
 
332
   client MAY issue the constituent FETCH and APPEND commands against
 
333
   both servers.
 
334
 
 
335
 
 
336
 
 
337
 
 
338
Gahrns                      Standards Track                     [Page 6]
 
339
 
 
340
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
341
 
 
342
 
 
343
   Example:
 
344
 
 
345
      C: A001 COPY 1 "SHARED/STUFF"
 
346
      S: A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/SHARED/STUFF]
 
347
              Unable to copy message(s) to SERVER2.
 
348
 
 
349
5.1 RLIST command
 
350
 
 
351
   Arguments:  reference name
 
352
               mailbox name with possible wildcards
 
353
 
 
354
   Responses:  untagged responses: LIST
 
355
 
 
356
   Result:     OK - RLIST Completed
 
357
               NO - RLIST Failure
 
358
               BAD - command unknown or arguments invalid
 
359
 
 
360
   The RLIST command behaves identically to its LIST counterpart, except
 
361
   remote mailboxes are returned in addition to local mailboxes in the
 
362
   LIST responses.
 
363
 
 
364
5.2 RLSUB Command
 
365
 
 
366
   Arguments:  reference name
 
367
               mailbox name with possible wildcards
 
368
 
 
369
   Responses:  untagged responses: LSUB
 
370
 
 
371
   Result:     OK - RLSUB Completed
 
372
               NO - RLSUB Failure
 
373
               BAD - command unknown or arguments invalid
 
374
 
 
375
   The RLSUB command behaves identically to its LSUB counterpart, except
 
376
   remote mailboxes are returned in addition to local mailboxes in the
 
377
   LSUB responses.
 
378
 
 
379
6. Formal Syntax
 
380
 
 
381
   The following syntax specification uses the augmented Backus-Naur
 
382
   Form (BNF) as described in [ABNF].
 
383
 
 
384
   list_mailbox = <list_mailbox> as defined in [RFC-2060]
 
385
 
 
386
   mailbox = <mailbox> as defined in [RFC-2060]
 
387
 
 
388
   mailbox_referral = <tag> SPACE "NO" SPACE
 
389
      <referral_response_code> (text / text_mime2)
 
390
      ; See [RFC-2060] for <tag>, text and text_mime2 definition
 
391
 
 
392
 
 
393
 
 
394
Gahrns                      Standards Track                     [Page 7]
 
395
 
 
396
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
397
 
 
398
 
 
399
   referral_response_code = "[" "REFERRAL" 1*(SPACE <url>) "]"
 
400
      ; See [RFC-1738] for <url> definition
 
401
 
 
402
   rlist = "RLIST" SPACE mailbox SPACE list_mailbox
 
403
 
 
404
   rlsub = "RLSUB" SPACE mailbox SPACE list_mailbox
 
405
 
 
406
6. Security Considerations
 
407
 
 
408
   The IMAP4 referral mechanism makes use of IMAP URLs, and as such,
 
409
   have the same security considerations as general internet URLs [RFC-
 
410
   1738], and in particular IMAP URLs [RFC-2192].
 
411
 
 
412
   With the MAILBOX-REFERRALS capability, it is potentially easier to
 
413
   write a rogue server that injects a bogus referral response that
 
414
   directs a user to an incorrect mailbox.  Although referrals reduce
 
415
   the effort to write such a server, the referral response makes
 
416
   detection of the intrusion easier.
 
417
 
 
418
7. References
 
419
 
 
420
   [RFC-2060], Crispin, M., "Internet Message Access Protocol - Version
 
421
   4rev1", RFC 2060, University of Washington, December 1996.
 
422
 
 
423
   [RFC-2192], Newman, C., "IMAP URL Scheme", RFC 2192, Innosoft,
 
424
   September 1997.
 
425
 
 
426
   [RFC-1738], Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
 
427
   Resource Locators (URL)", RFC 1738, CERN, Xerox Corporation,
 
428
   University of Minnesota, December 1994.
 
429
 
 
430
   [RFC-2119], Bradner, S., "Key words for use in RFCs to Indicate
 
431
   Requirement Levels", RFC 2119, Harvard University, March 1997.
 
432
 
 
433
   [ABNF], DRUMS working group, Dave Crocker Editor, "Augmented BNF for
 
434
   Syntax Specifications: ABNF", Work in Progress, Internet Mail
 
435
   Consortium, April 1997.
 
436
 
 
437
8.  Acknowledgments
 
438
 
 
439
   Many valuable suggestions were received from private discussions and
 
440
   the IMAP4 mailing list.  In particular, Raymond Cheng, Mark Crispin,
 
441
   Mark Keasling, Chris Newman and Larry Osterman made significant
 
442
   contributions to this document.
 
443
 
 
444
 
 
445
 
 
446
 
 
447
 
 
448
 
 
449
 
 
450
Gahrns                      Standards Track                     [Page 8]
 
451
 
 
452
RFC 2193                IMAP4 Mailbox Referrals           September 1997
 
453
 
 
454
 
 
455
9. Author's Address
 
456
 
 
457
   Mike Gahrns
 
458
   Microsoft
 
459
   One Microsoft Way
 
460
   Redmond, WA, 98072
 
461
 
 
462
   Phone: (206) 936-9833
 
463
   EMail: mikega@microsoft.com
 
464
 
 
465
 
 
466
 
 
467
 
 
468
 
 
469
 
 
470
 
 
471
 
 
472
 
 
473
 
 
474
 
 
475
 
 
476
 
 
477
 
 
478
 
 
479
 
 
480
 
 
481
 
 
482
 
 
483
 
 
484
 
 
485
 
 
486
 
 
487
 
 
488
 
 
489
 
 
490
 
 
491
 
 
492
 
 
493
 
 
494
 
 
495
 
 
496
 
 
497
 
 
498
 
 
499
 
 
500
 
 
501
 
 
502
 
 
503
 
 
504
 
 
505
 
 
506
Gahrns                      Standards Track                     [Page 9]
 
507