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

« back to all changes in this revision

Viewing changes to imap/docs/rfc/rfc3503.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                                        A. Melnikov
 
8
Request for Comments: 3503                 ACI Worldwide/MessagingDirect
 
9
Category: Standards Track                                     March 2003
 
10
 
 
11
 
 
12
          Message Disposition Notification (MDN) profile for
 
13
                Internet Message Access Protocol (IMAP)
 
14
 
 
15
Status of this Memo
 
16
 
 
17
   This document specifies an Internet standards track protocol for the
 
18
   Internet community, and requests discussion and suggestions for
 
19
   improvements.  Please refer to the current edition of the "Internet
 
20
   Official Protocol Standards" (STD 1) for the standardization state
 
21
   and status of this protocol.  Distribution of this memo is unlimited.
 
22
 
 
23
Copyright Notice
 
24
 
 
25
   Copyright (C) The Internet Society (2003).  All Rights Reserved.
 
26
 
 
27
Abstract
 
28
 
 
29
   The Message Disposition Notification (MDN) facility defined in RFC
 
30
   2298 provides a means by which a message can request that message
 
31
   processing by the recipient be acknowledged as well as a format to be
 
32
   used for such acknowledgements.  However, it doesn't describe how
 
33
   multiple Mail User Agents (MUAs) should handle the generation of MDNs
 
34
   in an Internet Message Access Protocol (IMAP4) environment.
 
35
 
 
36
   This document describes how to handle MDNs in such an environment and
 
37
   provides guidelines for implementers of IMAP4 that want to add MDN
 
38
   support to their products.
 
39
 
 
40
 
 
41
 
 
42
 
 
43
 
 
44
 
 
45
 
 
46
 
 
47
 
 
48
 
 
49
 
 
50
 
 
51
 
 
52
 
 
53
 
 
54
 
 
55
 
 
56
 
 
57
 
 
58
Melnikov                    Standards Track                     [Page 1]
 
59
 
 
60
RFC 3503                  MDN profile for IMAP                March 2003
 
61
 
 
62
 
 
63
Table of Contents
 
64
 
 
65
   1.  Conventions Used in this Document.............................  2
 
66
   2.  Introduction and Overview.....................................  2
 
67
   3.  Client behavior...............................................  3
 
68
       3.1. Client behavior when receiving a message.................  5
 
69
       3.2. Client behavior when copying a message...................  5
 
70
       3.3. Client behavior when sending a message...................  5
 
71
       3.4. Client behavior when saving a temporary message..........  5
 
72
   4.  Server behavior...............................................  5
 
73
       4.1. Server that supports arbitrary keywords..................  5
 
74
       4.2. Server that supports only $MDNSent keyword...............  5
 
75
       4.3. Interaction with IMAP ACL extension......................  6
 
76
   5.  Examples......................................................  6
 
77
   6.  Security Considerations.......................................  7
 
78
   7.  Formal Syntax.................................................  7
 
79
   8.  Acknowledgments...............................................  7
 
80
   9.  Normative References..........................................  8
 
81
   10. Author's Address..............................................  8
 
82
   11. Full Copyright Statement......................................  9
 
83
 
 
84
1.  Conventions Used in this Document
 
85
 
 
86
   "C:" and "S:" in examples show lines sent by the client and server
 
87
   respectively.
 
88
 
 
89
   The keywords "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in
 
90
   this document when typed in uppercase are to be interpreted as
 
91
   defined in "Key words for use in RFCs to Indicate Requirement Levels"
 
92
   [KEYWORDS].
 
93
 
 
94
2.  Introduction and Overview
 
95
 
 
96
   This memo defines an additional [IMAP4] mailbox keyword that allows
 
97
   multiple Mail User Agents (MUAs) to know if a requested receipt
 
98
   notification was sent.
 
99
 
 
100
   Message Disposition Notification [MDN] does not require any special
 
101
   support of IMAP in the case where a user has access to the mailstore
 
102
   from only one computer and is using a single MUA.  In this case, the
 
103
   MUA behaves as described in [MDN], i.e., the MUA performs automatic
 
104
   processing and generates corresponding MDNs, it performs requested
 
105
   action and, with the user's permission, sends appropriate MDNs.  The
 
106
   MUA will not send MDN twice because the MUA keeps track of sent
 
107
   notifications in a local configuration.  However, that does not work
 
108
   when IMAP is used to access the same mailstore from different
 
109
   locations or is using different MUAs.
 
110
 
 
111
 
 
112
 
 
113
 
 
114
Melnikov                    Standards Track                     [Page 2]
 
115
 
 
116
RFC 3503                  MDN profile for IMAP                March 2003
 
117
 
 
118
 
 
119
   This document defines a new special purpose mailbox keyword $MDNSent
 
120
   that must be used by MUAs.  It does not define any new command or
 
121
   response for IMAP, but describes a technique that MUAs should use to
 
122
   achieve interoperability.
 
123
 
 
124
   When a client opens a mailbox for the first time, it verifies that
 
125
   the server is capable of storing the $MDNSent keyword by examining
 
126
   the PERMANENTFLAGS response code.  In order to support MDN in IMAP, a
 
127
   server MUST support either the $MDNSent keyword, or arbitrary message
 
128
   keywords.
 
129
 
 
130
3.  Client behavior
 
131
 
 
132
   The use of IMAP requires few additional steps in mail processing on
 
133
   the client side.  The following timeline modifies the timeline found
 
134
   in Section 4 of [MDN].
 
135
 
 
136
   -- User composes message.
 
137
 
 
138
   -- User tells MUA to send message.
 
139
 
 
140
   -- MUA passes message to MSA (original recipient information passed
 
141
      along).  MUA [optionally] saves message to a folder for sent mail
 
142
      with $MDNSent flag set.
 
143
 
 
144
   -- MSA sends message to MTA.
 
145
 
 
146
   -- Final MTA receives message.
 
147
 
 
148
   -- Final MTA delivers message to MUA (possibly generating DSN).
 
149
 
 
150
   -- MUA logs into IMAP server, opens mailbox, verifies if mailbox can
 
151
      store $MDNSent keyword by examining PERMANENTFLAGS response.
 
152
 
 
153
   -- MUA performs automatic processing and generates corresponding MDNs
 
154
      ("dispatched", "processed", "deleted", "denied" or "failed"
 
155
      disposition type with "automatic-action" and "MDN-sent-
 
156
      automatically" disposition modes) for messages that do not have
 
157
      $MDNSent keyword, or \Draft flag set. (*)
 
158
 
 
159
   -- MUA sets the $MDNSent keyword for every message that required an
 
160
      automatic MDN to be sent, whether or not the MDN was sent.
 
161
 
 
162
   -- MUA displays a list of messages to user.
 
163
 
 
164
   -- User selects a message and requests that some action be performed
 
165
      on it.
 
166
 
 
167
 
 
168
 
 
169
 
 
170
Melnikov                    Standards Track                     [Page 3]
 
171
 
 
172
RFC 3503                  MDN profile for IMAP                March 2003
 
173
 
 
174
 
 
175
   -- MUA performs requested action and, with user's permission, sends
 
176
      appropriate MDN ("displayed", "dispatched", "processed",
 
177
      "deleted", "denied" or "failed" disposition type with "manual-
 
178
      action" and "MDN-sent-manually" or "MDN-sent-automatically"
 
179
      disposition mode).  If the generated MDN is saved to a mailbox
 
180
      with the APPEND command, the client MUST specify the $MDNSent
 
181
      keyword in the APPEND.
 
182
 
 
183
   -- MUA sets the $MDNSent keyword for all messages for which the user
 
184
      confirmed the dispatching of disposition (or was explicitly
 
185
      prohibited to do so).
 
186
 
 
187
   -- User possibly performs other actions on message, but no further
 
188
      MDNs are generated.
 
189
 
 
190
   (*) Note: MUA MUST NOT use \Recent flag as an indicator that it
 
191
       should send MDN, because according to [IMAP4], "If multiple
 
192
       connections have the same mailbox selected simultaneously, it is
 
193
       undefined which of these connections will see newly-arrived
 
194
       messages with \Recent set and which will see it without \Recent
 
195
       set".  Thus, using \Recent as an indicator will cause
 
196
       unpredictable client behavior with different IMAP4 servers.
 
197
       However, the client MAY use \Seen flag as one of the indicators
 
198
       that MDN must not be sent.  The client MUST NOT use any other
 
199
       standard flags, like \Draft or \Answered, to indicate that MDN
 
200
       was previously sent, because they have different well known
 
201
       meaning.  In any case, in the presence of the $MDNSent keyword,
 
202
       the client MUST ignore all other flags or keywords for the
 
203
       purpose of generating an MDN and MUST NOT send the MDN.
 
204
 
 
205
   When the client opens a mailbox for the first time, it must verify
 
206
   that the server supports the $MDNSent keyword, or arbitrary message
 
207
   keywords by examining PERMANENTFLAGS response code.
 
208
 
 
209
   The client MUST NOT try to set the $MDNSent keyword if the server is
 
210
   incapable of storing it permanently.
 
211
 
 
212
   The client MUST be prepared to receive NO from the server as the
 
213
   result of STORE $MDNSent when the server advertises the support of
 
214
   storing arbitrary keywords, because the server may limit the number
 
215
   of message keywords it can store in a particular mailbox.  A client
 
216
   SHOULD NOT send MDN if it fails to store the $MDNSent keyword.
 
217
 
 
218
   Once the $MDNSent keyword is set, it MUST NOT be unset by a client.
 
219
   The client MAY set the $MDNSent keyword when a user denies sending
 
220
   the notification.  This prohibits all other MUAs from sending MDN for
 
221
   this message.
 
222
 
 
223
 
 
224
 
 
225
 
 
226
Melnikov                    Standards Track                     [Page 4]
 
227
 
 
228
RFC 3503                  MDN profile for IMAP                March 2003
 
229
 
 
230
 
 
231
3.1.  Client behavior when receiving a message
 
232
 
 
233
   The client MUST NOT send MDN if a message has the $MDNSent keyword
 
234
   set.  It also MUST NOT send MDN if a message has \Draft flag, because
 
235
   some clients use this flag to mark a message as incomplete.
 
236
 
 
237
   See the timeline in section 3 for details on client behavior when
 
238
   receiving a message.
 
239
 
 
240
3.2.  Client behavior when copying a message
 
241
 
 
242
   The client SHOULD verify that $MDNSent is preserved on a COPY
 
243
   operation.  Furthermore, when a message is copied between servers
 
244
   with the APPEND command, the client MUST set the $MDNSent keyword
 
245
   correctly.
 
246
 
 
247
3.3.  Client behavior when sending a message
 
248
 
 
249
   When saving a sent message to any folder, the client MUST set the
 
250
   $MDNSent keyword to prevent another client from sending MDN for the
 
251
   message.
 
252
 
 
253
3.4.  Client behavior when saving a temporary message
 
254
 
 
255
   When saving an unfinished message to any folder client MUST set
 
256
   $MDNSent keyword to prevent another client from sending MDN for the
 
257
   message.
 
258
 
 
259
4.  Server behavior
 
260
 
 
261
   Server implementors that want to follow this specification must
 
262
   insure that their server complies with either section 4.1 or section
 
263
   4.2.  If the server also supports the IMAP [ACL] extension, it MUST
 
264
   also comply with the section 4.3.
 
265
 
 
266
4.1.  Server that supports arbitrary keywords
 
267
 
 
268
   No changes are required from the server to make it compatible with
 
269
   the extension described in this document if it supports arbitrary
 
270
   keywords.
 
271
 
 
272
4.2.  Server that supports only $MDNSent keyword
 
273
 
 
274
   Servers that support only the $MDNSent keyword MUST preserve it on
 
275
   the COPY operation.  It is also expected that a server that supports
 
276
   SEARCH <flag> will also support the SEARCH KEYWORD $MDNSent.
 
277
 
 
278
 
 
279
 
 
280
 
 
281
 
 
282
Melnikov                    Standards Track                     [Page 5]
 
283
 
 
284
RFC 3503                  MDN profile for IMAP                March 2003
 
285
 
 
286
 
 
287
4.3.  Interaction with IMAP ACL extension
 
288
 
 
289
   Any server that conforms to either 4.1 or 4.2 and also supports the
 
290
   IMAP [ACL] extension, SHOULD preserve the $MDNSent keyword on COPY
 
291
   even if the client does not have 'w' right.  This will prevent the
 
292
   generation of a duplicated MDN for the same message.  Note that the
 
293
   server MUST still check if the client has rights to perform the COPY
 
294
   operation on a message according to [ACL].
 
295
 
 
296
5.  Examples
 
297
 
 
298
   1) MUA opens mailbox for the first time.
 
299
 
 
300
   a) The server supports storing of arbitrary keywords
 
301
 
 
302
   C: a100 select INBOX
 
303
   S: * FLAGS (\Flagged \Draft \Deleted \Seen)
 
304
   S: * OK [PERMANENTFLAGS (\Flagged \Draft \Deleted \Seen \*)]
 
305
   S: * 5 EXISTS
 
306
   S: * 3 RECENT
 
307
   S: * OK [UIDVALIDITY 894294713]
 
308
   S: a100 OK [READ-WRITE] Completed
 
309
 
 
310
   b) The server supports storing of the $MDNSent keyword
 
311
 
 
312
   C: a100 select INBOX
 
313
   S: * FLAGS (\Flagged \Draft \Deleted \Seen $MDNSent)
 
314
   S: * OK [PERMANENTFLAGS (\Flagged \Draft \Deleted \Seen $MDNSent)]
 
315
   S: * 5 EXISTS
 
316
   S: * 3 RECENT
 
317
   S: * OK [UIDVALIDITY 894294713]
 
318
   S: a100 OK [READ-WRITE] Completed
 
319
 
 
320
   2) The MUA successfully sets the $MDNSent keyword
 
321
 
 
322
   C: a200 STORE 4 +FLAGS ($MDNSent)
 
323
   S: * 4 FETCH (FLAGS (\Flagged \Seen $MDNSent))
 
324
   S: * FLAGS ($MDNSent \Flagged \Deleted \Draft \Seen)
 
325
   S: * OK [PERMANENTFLAGS ($MDNSent \Flagged \Deleted \Draft \Seen \*)]
 
326
   S: a200 OK STORE completed
 
327
 
 
328
   3) The server refuses to store the $MDNSent keyword
 
329
 
 
330
   C: a200 STORE 4 +FLAGS ($MDNSent)
 
331
   S: a200 NO STORE failed : no space left to store $MDNSent keyword
 
332
 
 
333
 
 
334
 
 
335
 
 
336
 
 
337
 
 
338
Melnikov                    Standards Track                     [Page 6]
 
339
 
 
340
RFC 3503                  MDN profile for IMAP                March 2003
 
341
 
 
342
 
 
343
   4) All clients and servers MUST treat the $MDNSent keyword as case
 
344
   insensitive in all operations, as stated in [IMAP].
 
345
 
 
346
   C: a300 FETCH 1:* FLAGS
 
347
   S: * 1 FETCH (FLAGS (\Seen))
 
348
   S: * 2 FETCH (FLAGS (\Answered \Seen $MdnSENt))
 
349
   S: * 3 FETCH (FLAGS ())
 
350
   S: * 4 FETCH (FLAGS (\Flagged \Seen $MdnSENT))
 
351
   S: * 5 FETCH (FLAGS ($MDNSent))
 
352
   S: * 6 FETCH (FLAGS (\Recent))
 
353
   S: a300 OK FETCH completed
 
354
   C: a400 SEARCH KEYWORDS $mdnsent
 
355
   S: * SEARCH 2 4 5
 
356
   S: a400 OK SEARCH completed
 
357
 
 
358
6.  Security Considerations
 
359
 
 
360
   There are no known security issues with this extension, not found in
 
361
   [MDN] and/or [IMAP4].
 
362
 
 
363
   Section 4.3 changes ACL checking requirements on an IMAP server that
 
364
   implements IMAP [ACL] extension.
 
365
 
 
366
7.  Formal Syntax
 
367
 
 
368
   The following syntax specification uses the augmented Backus-Naur
 
369
   Form (BNF) notation as specified in [RFC-822], as modified by
 
370
   [IMAP4].  Non-terminals referenced, but not defined below, are as
 
371
   defined by [IMAP4].
 
372
 
 
373
   Except as noted otherwise, all alphabetic characters are case-
 
374
   insensitive.  The use of upper or lower case characters to define
 
375
   token strings is for editorial clarity only.  Implementations MUST
 
376
   accept these strings in a case-insensitive fashion.
 
377
 
 
378
   flag_keyword    ::= "$MDNSent" / other_keywords
 
379
 
 
380
   other_keywords  ::= atom
 
381
 
 
382
8.  Acknowledgments
 
383
 
 
384
   This document is the product of discussions that took place on the
 
385
   IMAP mailing list.  Special gratitude to Cyrus Daboo and Randall
 
386
   Gellens for reviewing the document.
 
387
 
 
388
   Thank you to my father who as he has helped to make me what I am.  I
 
389
   miss you terribly.
 
390
 
 
391
 
 
392
 
 
393
 
 
394
Melnikov                    Standards Track                     [Page 7]
 
395
 
 
396
RFC 3503                  MDN profile for IMAP                March 2003
 
397
 
 
398
 
 
399
9.  Normative References
 
400
 
 
401
   [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
 
402
              Requirement Levels", BCP 14, RFC 2119, March 1997.
 
403
 
 
404
   [MDN]      Fajman, R., "An Extensible Message Format for Message
 
405
              Disposition Notifications", RFC 2298, March 1998.
 
406
 
 
407
   [IMAP4]    Crispin, M., "Internet Message Access Protocol - Version
 
408
              4rev1", RFC 3501, March 2003.
 
409
 
 
410
   [ACL]      Myers, J., "IMAP4 ACL extension", RFC 2086, January 1997.
 
411
 
 
412
10.  Author's Address
 
413
 
 
414
   Alexey Melnikov
 
415
   ACI Worldwide/MessagingDirect
 
416
   59 Clarendon Road
 
417
   Watford, Hertfordshire
 
418
   United Kingdom, WD17 1FQ
 
419
 
 
420
   Phone: +44 1923 81 2877
 
421
   EMail: mel@messagingdirect.com
 
422
 
 
423
 
 
424
 
 
425
 
 
426
 
 
427
 
 
428
 
 
429
 
 
430
 
 
431
 
 
432
 
 
433
 
 
434
 
 
435
 
 
436
 
 
437
 
 
438
 
 
439
 
 
440
 
 
441
 
 
442
 
 
443
 
 
444
 
 
445
 
 
446
 
 
447
 
 
448
 
 
449
 
 
450
Melnikov                    Standards Track                     [Page 8]
 
451
 
 
452
RFC 3503                  MDN profile for IMAP                March 2003
 
453
 
 
454
 
 
455
11.  Full Copyright Statement
 
456
 
 
457
   Copyright (C) The Internet Society (2003).  All Rights Reserved.
 
458
 
 
459
   This document and translations of it may be copied and furnished to
 
460
   others, and derivative works that comment on or otherwise explain it
 
461
   or assist in its implementation may be prepared, copied, published
 
462
   and distributed, in whole or in part, without restriction of any
 
463
   kind, provided that the above copyright notice and this paragraph are
 
464
   included on all such copies and derivative works.  However, this
 
465
   document itself may not be modified in any way, such as by removing
 
466
   the copyright notice or references to the Internet Society or other
 
467
   Internet organizations, except as needed for the purpose of
 
468
   developing Internet standards in which case the procedures for
 
469
   copyrights defined in the Internet Standards process must be
 
470
   followed, or as required to translate it into languages other than
 
471
   English.
 
472
 
 
473
   The limited permissions granted above are perpetual and will not be
 
474
   revoked by the Internet Society or its successors or assigns.
 
475
 
 
476
   This document and the information contained herein is provided on an
 
477
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
 
478
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
 
479
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
 
480
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
 
481
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 
482
 
 
483
Acknowledgement
 
484
 
 
485
   Funding for the RFC Editor function is currently provided by the
 
486
   Internet Society.
 
487
 
 
488
 
 
489
 
 
490
 
 
491
 
 
492
 
 
493
 
 
494
 
 
495
 
 
496
 
 
497
 
 
498
 
 
499
 
 
500
 
 
501
 
 
502
 
 
503
 
 
504
 
 
505
 
 
506
Melnikov                    Standards Track                     [Page 9]
 
507