1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
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
451
452
453
454
455
456
457
458
459
460
461
462
463
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
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
|
Internet Engineering Task Force (IETF) D. Crocker
Request for Comments: 6729 Brandenburg InternetWorking
Category: Standards Track M. Kucherawy
ISSN: 2070-1721 Cloudmark, Inc.
September 2012
Indicating Email Handling States in Trace Fields
Abstract
This document registers a trace field clause for use in indicating
transitions between handling queues or processing states, including
enacting inter- and intra-host message transitions. This might
include message quarantining, mailing list moderation, timed
delivery, queuing for further analysis, content conversion, or other
similar causes, as well as optionally identifying normal handling
queues.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc6729.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Crocker & Kucherawy Standards Track [Page 1]
^L
RFC 6729 Email Handling States September 2012
Table of Contents
1. Introduction ....................................................2
2. Key Words .......................................................3
3. Trace Clause ....................................................3
4. Discussion ......................................................6
5. Granularity .....................................................6
6. IANA Considerations .............................................7
6.1. MAIL Parameters Additional-registered-clauses
Sub-Registry ...............................................7
6.2. MAIL Parameters Registered-states Sub-Registry .............7
7. Security Considerations .........................................9
8. References .....................................................10
8.1. Normative References ......................................10
8.2. Informative References ....................................10
Appendix A. Trace Field Examples .................................11
A.1. Typical Delivery without Obvious Extra Handling ...........11
A.2. Delivery with Moderation ..................................11
Appendix B. Acknowledgements .....................................12
1. Introduction
[SMTP] defines the content of email message trace fields, commonly
the "Received" header field. These are typically used to record an
audit trail of the path a message follows from origin to destination,
with one such field added each time a message moves from one host to
the next.
Section 3.7.2 of that document mentions that "the most important use
of Received: lines is for debugging mail faults [...]".
There are some cases where there may be large time gaps between trace
fields. Though this might be caused by transient communication
issues, they might also be caused by policy decisions or special
processing regarding the content of the message, authorization of
some identity on the message, or transitions between major software
components. Common examples include message quarantines (filters
that cause a message to be held pending further evaluation or
delivery of a message pending manual operator action), pending
content analysis, or mailing list servers that impose moderation
rules (mailing list owner action required regarding mail from authors
not subscribed to those lists).
Crocker & Kucherawy Standards Track [Page 2]
^L
RFC 6729 Email Handling States September 2012
This document registers a new optional clause that can be used in
trace fields to indicate that a message entered such a special
processing queue or state for some period. This allows inspection of
the trace information to reveal that the cause for a time gap in
trace fields was imposed by additional processing rather than one
caused by transient technical difficulties.
2. Key Words
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [KEYWORDS].
3. Trace Clause
This specification defines a clause, called "state", which MAY be
used when creating a Received header field (see Section 4.4 of
[SMTP]) to indicate the nature of additional handling imposed on the
relaying of a message toward its recipient(s). It is followed by a
single keyword that provides that detail. A Mail Transfer Agent
(MTA) or other handling agent that determines a message has entered a
state other than normal queuing of messages for relaying or delivery
MAY generate a trace field including one of these clauses. That is,
the presence of this clause on a trace field is an indication of the
entry of the message into that state; a later trace field added would
indicate its departure from that state.
An MTA implementing this specification SHOULD add a Received field as
described whenever:
a. It determines that a special handling condition will occur and
places it into that condition; or
b. It determines that no special handling is required and prepares
it for relay to the next handling agent.
An MTA need not add a Received field indicating preparation for
normal handoff to the next handling agent if it has already added a
Received field for some other reason. Trace data added by the next
handling agent will imply the message's exit from the special
handling condition.
If a single MTA processes a message through multiple special handling
conditions, it MAY add a Received field for each distinct condition.
Crocker & Kucherawy Standards Track [Page 3]
^L
RFC 6729 Email Handling States September 2012
For example, presume a message will be injected into MTA-1, then
travel to MTA-3 via MTA-2, and then MTA-3 will enact final delivery.
At MTA-2, it is determined that some action will be taken that will
cause the message to undergo some handling change that is outside of
typical message flow. In this case:
1. MTA-1 adds a typical Received field and relays it to MTA-2.
2. MTA-2 determines that the atypical handling will occur and adds a
Received field using the extension specified here.
3. On completion of the atypical handling, MTA-2 relays the message
to MTA-3.
4. MTA-3 adds a typical Received field and enacts final delivery of
the message.
Appropriate use of this mechanism does not include associating meta-
data with the message, such as categorizing the message (e.g., the
notions of "is spam" or "was 8-bit, converted to 7-bit"). Processing
agents also cannot reliably use this mechanism to determine anything
about the message content, since there is no guarantee that all
agents in the chain of handling made such annotations to allow
correct conclusions. The sole purpose here is to allow one to
determine the point(s) in the chain of custody of a message at which
the message was subjected to handling outside of normal message
routing and queuing.
The following state keywords are defined in this document; extensions
may define other registered keywords (see Section 6.2):
auth: The message entered a queue pending authentication of some
identifier in the message.
content: The message entered a queue pending content analysis, such
as scanning for spam or viruses.
convert: The message entered a queue pending content conversion.
moderation: The message entered a hold pending mailing list
moderator action.
normal: The message is not in an administrative hold and is queued
for or is being handed off to the next handling agent (which may
be local delivery). This is the default interpretation when no
"state" clause is present.
Crocker & Kucherawy Standards Track [Page 4]
^L
RFC 6729 Email Handling States September 2012
other: The message entered a hold or queue for reasons not covered
by other keywords in this list and not for transient technology
issues.
outbound: The message entered a queue for outbound relaying. This
is typically the last case added for a single host, and the next
Received header field is expected to be added by some other host.
quarantine: The message entered a hold in an isolation queue pending
operator action for local policy reasons.
timed: The message entered a hold in order to meet a requested
delivery window, such as is defined in [FUTURERELEASE].
In Section 6, the "state" clause is added to the Additional-
Registered-Clauses IANA sub-registry. The ABNF for this clause is:
State = CFWS "state" FWS queue-state-keyword [ "/" value ]
queue-state-keyword = ( reg-state-keyword / unreg-state-keyword )
reg-state-keyword = ( "auth" / "content" / "convert" /
"moderation" / "normal" / "other" /
"outbound" / "quarantine" / "timed" /
additional-state-keyword )
additional-state-keyword = token
; MUST be registered; see
; "IANA Considerations" below
value = token
unreg-state-keyword = token
"FWS" and "CFWS" are defined in [MAIL]. "token" is defined in [MIME].
A transfer agent making use of this extension MAY also include header
field comments to provide additional information.
The "value" is available for providing additional labels as
explanation for the state transition. Examples could include:
o convert/unicode2ascii
o moderation/not-subscribed
o quarantine/spam
Crocker & Kucherawy Standards Track [Page 5]
^L
RFC 6729 Email Handling States September 2012
4. Discussion
Handling agents are not expected to implement or support all of
these. Indeed, recording trace information for all of the states
described above could make the header of a message inordinately
large. Rather, an agent is encouraged to apply state annotations
when a message enters a handling queue where a significant condition
occurs or where significant additional processing or delay is
possible, and especially when a handoff has occurred between two
different, independent agents.
For example, an MTA receiving a message, doing message
authentication, scanning for viruses and spam, and then putting it in
an outbound queue could add four Received header fields denoting each
of these states. However, where they are all done as part of a
single system process, in a single pass, doing so would be considered
unusual (and extremely verbose). This method SHOULD NOT be applied
except when doing detailed analysis of a single component to identify
performance issues with those steps.
Rather, an agent that wishes to make a state annotation SHOULD add
only a single Received header field including such annotation, thus
indicating (a) the time of completion of its handling of the message
via the date portion of the field and (b) the final disposition of
that message relative to that agent. For example, an MTA receiving a
message that performs various checks on the message before
immediately handing it off to a Mailing List Manager (MLM) would only
record a "normal" state, assuming it passes those checks. The MLM
would then evaluate the message and record its own state once it
decides what the next step will be for the handling of that message.
5. Granularity
The degree of granularity -- and therefore the degree of verbosity --
recorded through the use of this additional trace clause is likely to
vary depending on circumstances. It will typically be the case that
use of this clause will be limited to "unusual" transitions, such as
when a message requires additional scrutiny or other processing or
needs to be quarantined.
Somewhat greater granularity might also include transitions of
administrative responsibility, such as between a Mail Transfer Agent
(MTA) operator and a Mailing List Manager (MLM) operator. This could
be further enhanced to note some transitions that are interesting
only when other transitions have occurred, such as noting entry to
the outbound queue only when the message is originating from an
"interesting" source, like an MLM, since an MLM can introduce
significant changes to the message or delivery delay and it could be
Crocker & Kucherawy Standards Track [Page 6]
^L
RFC 6729 Email Handling States September 2012
useful to know when it completed its processing, as distinct from the
subsequent processing by the originating MTA. In circumstances
needing very fine-grained trace information, fields might be created
to note all of these "significant" network architecture transitions.
One should note, however, when choosing higher levels of granularity,
that the Received header fields present on a message could be counted
by MTAs when trying to decide whether or not a message routing loop
is in effect. A message with an abundance of these might cause an
incorrect determination that the message is in a delivery loop,
causing it to be removed from the mail stream. See Section 6.3 of
[SMTP] for further discussion.
6. IANA Considerations
6.1. MAIL Parameters Additional-registered-clauses Sub-Registry
This document adds the following entry to the "Additional-registered-
clauses" sub-registry of the "MAIL Parameters" registry, created by
[SMTP]:
Clause name: state
Description: Indicates entry into a special queue state
Syntax Summary: state <state-name>
Reference: [RFC6729]
6.2. MAIL Parameters Registered-states Sub-Registry
The "MAIL Parameters" registry at IANA has been updated by the
creation of the "Registered-states" sub-registry to contain valid
state keywords for use with this specification. Updates to this
registry are governed by the First Come, First Served rules of [IANA]
for new registrations. Changes to the status of existing entries are
limited to the original registrant or IESG approval.
Discussion of all registry updates is encouraged via one or more IETF
mailing lists that typically cover email-related subjects prior to
approval of the change, as a way of documenting the work. The
ietf-smtp@ietf.org list is suggested.
Note that only registrations of queue state keywords are permitted.
The registry is not to be used for specifying secondary information
(i.e., the "value" part of the ABNF in Section 3).
Crocker & Kucherawy Standards Track [Page 7]
^L
RFC 6729 Email Handling States September 2012
Registrations are to include the following entries:
Name: The name of the state keyword being defined or updated, which
conforms to the ABNF shown in Section 3.
Description: A brief description of the keyword's meaning.
Specification: The specification document that defines the queue
state being registered, or if no stable reference exists, a more
detailed explanation of the queue state than is in the
"Description", sufficient to allow interoperability.
Use: One of "current" (the state keyword is in current use),
"deprecated" (the state keyword is in use but not recommended for
new implementations), or "historic" (the state keyword is no
longer in substantial current use).
Crocker & Kucherawy Standards Track [Page 8]
^L
RFC 6729 Email Handling States September 2012
The initial registration set is as follows:
+------------+------------------------+-----------------+---------+
| Name | Description | Specification | Use |
+------------+------------------------+-----------------+---------+
| auth | Held for message | [RFC6729] | current |
| | authentication | | |
+------------+------------------------+-----------------+---------+
| content | Held for message | [RFC6729] | current |
| | content analysis | | |
+------------+------------------------+-----------------+---------+
| convert | Held for message | [RFC6729] | current |
| | content conversion | | |
+------------+------------------------+-----------------+---------+
| moderation | Held for list | [RFC6729] | current |
| | moderation | | |
+------------+------------------------+-----------------+---------+
| normal | Message is not being | [RFC6729] | current |
| | held other than to | | |
| | accommodate typical | | |
| | relaying handling | | |
+------------+------------------------+-----------------+---------+
| other | Held for causes not | [RFC6729] | current |
| | covered by other | | |
| | registered state | | |
| | keywords | | |
+------------+------------------------+-----------------+---------+
| outbound | Message placed in | [RFC6729] | current |
| | outbound queue | | |
+------------+------------------------+-----------------+---------+
| quarantine | Held for operator | [RFC6729] | current |
| | action due to content | | |
| | analysis or local | | |
| | policy | | |
+------------+------------------------+-----------------+---------+
| timed | Held to accommodate a | [RFC6729] | current |
| | specific requested | | |
| | delivery window | | |
+------------+------------------------+-----------------+---------+
7. Security Considerations
The use of this trace information can reveal hints as to local policy
that was in effect at the time of message handling.
Further discussion about trace field security can be found in Section
7.6 of [SMTP].
Crocker & Kucherawy Standards Track [Page 9]
^L
RFC 6729 Email Handling States September 2012
8. References
8.1. Normative References
[IANA] Narten, T. and H. Alvestrand, "Guidelines for
Writing an IANA Considerations Section in RFCs",
BCP 26, RFC 5226, May 2008.
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[MAIL] Resnick, P., Ed., "Internet Message Format",
RFC 5322, October 2008.
[MIME] Freed, N. and N. Borenstein, "Multipurpose Internet
Mail Extensions (MIME) Part One: Format of Internet
Message Bodies", RFC 2045, November 1996.
[SMTP] Klensin, J., "Simple Mail Transfer Protocol",
RFC 5321, October 2008.
8.2. Informative References
[FUTURERELEASE] White, G. and G. Vaudreuil, "SMTP Submission Service
Extension for Future Message Release", RFC 4865,
May 2007.
Crocker & Kucherawy Standards Track [Page 10]
^L
RFC 6729 Email Handling States September 2012
Appendix A. Trace Field Examples
This section includes a sample of the new trace field clause in use.
A.1. Typical Delivery without Obvious Extra Handling
Typical message delivery
Received: from newyork.example.com
(newyork.example.com [192.0.2.250])
by mail-router.example.net (8.11.6/8.11.6)
with ESMTP id i7PK0sH7021929
for <recipient@example.net>;
Fri, Feb 15 2002 17:19:22 -0800
Received: from internal.example.com
(internal.example.com [192.168.0.1])
by newyork.example.com (8.11.6/8.11.6)
with ESMTP id i9MKZCRd064134
for <recipient@example.net>;
Fri, Feb 15 2002 17:19:08 -0800
Example 1: Typical message delivery with no appreciable extra
handling; only Received header fields shown
A.2. Delivery with Moderation
Message delivery after moderation
Received: from newyork.example.com
(newyork.example.com [192.0.2.250])
by mail-router.example.net (8.11.6/8.11.6)
with ESMTP id i7PK0sH7021929
for <recipient@example.net>;
Fri, Feb 15 2002 18:33:29 -0800
Received: from internal.example.com
(internal.example.com [192.168.0.1])
by newyork.example.com (8.11.6/8.11.6)
with ESMTP id i9MKZCRd064134
for <secret-list@example.com>
state moderation (sender not subscribed);
Fri, Feb 15 2002 17:19:08 -0800
Example 2: Message held for moderation; only Received header fields
shown
The message passed from internal.example.com to newyork.example.com
intended for a mailing list hosted at the latter. For list
administrative reasons, the message is held there for moderation. It
Crocker & Kucherawy Standards Track [Page 11]
^L
RFC 6729 Email Handling States September 2012
is finally released over an hour later and passed to the next host.
A comment after the state expression indicates the actual cause for
the administrative hold.
Appendix B. Acknowledgements
The authors wish to acknowledge the following for their reviews and
constructive criticisms of this proposal: Tony Finch, Ned Freed, Carl
S. Gutenkunst, John Levine, Bill McQuillan, S. Moonesamy, Alexey
Melnikov, Robert A. Rosenberg, Hector Santos, Rolf Sonneveld, and
Mykyta Yevstifeyev.
Authors' Addresses
D. Crocker
Brandenburg InternetWorking
675 Spruce Dr.
Sunnyvale 94086
USA
Phone: +1.408.246.8253
EMail: dcrocker@bbiw.net
URI: http://bbiw.net
Murray S. Kucherawy
Cloudmark, Inc.
128 King St., 2nd Floor
San Francisco, CA 94107
USA
EMail: superuser@gmail.com
Crocker & Kucherawy Standards Track [Page 12]
^L
|