draft-ietf-sieve-mime-loop-05.txt   draft-ietf-sieve-mime-loop-06.txt 
Internet Engineering Task Force T. Hansen Internet Engineering Task Force T. Hansen
Internet-Draft AT&T Laboratories Internet-Draft AT&T Laboratories
Intended status: Standards Track C. Daboo Intended status: Standards Track C. Daboo
Expires: January 15, 2009 Apple Inc. Expires: March 16, 2009 Apple Inc.
July 14, 2008 September 12, 2008
Sieve Email Filtering: MIME part Tests, Iteration, Extraction, Sieve Email Filtering: MIME part Tests, Iteration, Extraction,
Replacement and Enclosure Replacement and Enclosure
draft-ietf-sieve-mime-loop-05 draft-ietf-sieve-mime-loop-06
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 36 skipping to change at page 1, line 36
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 15, 2009. This Internet-Draft will expire on March 16, 2009.
Abstract Abstract
This document defines extensions to the Sieve email filtering This document defines extensions to the Sieve email filtering
language to permit analysis and manipulation of the MIME body parts language to permit analysis and manipulation of the MIME body parts
of an email message. of an email message.
Note Note
This document is being discussed on the MTA-FILTERS mailing list, This document is being discussed on the MTA-FILTERS mailing list,
skipping to change at page 2, line 26 skipping to change at page 2, line 26
7. Action "extracttext" . . . . . . . . . . . . . . . . . . . . . 9 7. Action "extracttext" . . . . . . . . . . . . . . . . . . . . . 9
8. Sieve Capability Strings . . . . . . . . . . . . . . . . . . . 9 8. Sieve Capability Strings . . . . . . . . . . . . . . . . . . . 9
9. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 9. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
9.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 10 9.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . 10
9.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 10 9.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . 10
9.3. Example 3 . . . . . . . . . . . . . . . . . . . . . . . . 11 9.3. Example 3 . . . . . . . . . . . . . . . . . . . . . . . . 11
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
11. Security Considerations . . . . . . . . . . . . . . . . . . . 12 11. Security Considerations . . . . . . . . . . . . . . . . . . . 12
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
12.1. foreverypart capability . . . . . . . . . . . . . . . . . 13 12.1. foreverypart capability . . . . . . . . . . . . . . . . . 13
12.2. mime capability . . . . . . . . . . . . . . . . . . . . . 13 12.2. mime capability . . . . . . . . . . . . . . . . . . . . . 14
12.3. replace capability . . . . . . . . . . . . . . . . . . . 14 12.3. replace capability . . . . . . . . . . . . . . . . . . . 14
12.4. enclose capability . . . . . . . . . . . . . . . . . . . 14 12.4. enclose capability . . . . . . . . . . . . . . . . . . . 14
12.5. extracttext capability . . . . . . . . . . . . . . . . . 14 12.5. extracttext capability . . . . . . . . . . . . . . . . . 14
13. Change History . . . . . . . . . . . . . . . . . . . . . . . . 14 13. Change History . . . . . . . . . . . . . . . . . . . . . . . . 15
13.1. draft-ietf-sieve-mime-05 . . . . . . . . . . . . . . . . 14 13.1. draft-ietf-sieve-mime-06 . . . . . . . . . . . . . . . . 15
13.2. draft-ietf-sieve-mime-04 . . . . . . . . . . . . . . . . 15 13.2. draft-ietf-sieve-mime-05 . . . . . . . . . . . . . . . . 15
13.3. draft-ietf-sieve-mime-03 . . . . . . . . . . . . . . . . 15 13.3. draft-ietf-sieve-mime-04 . . . . . . . . . . . . . . . . 15
13.4. draft-ietf-sieve-mime-02 . . . . . . . . . . . . . . . . 15 13.4. draft-ietf-sieve-mime-03 . . . . . . . . . . . . . . . . 15
13.5. draft-ietf-sieve-mime-01 . . . . . . . . . . . . . . . . 15 13.5. draft-ietf-sieve-mime-02 . . . . . . . . . . . . . . . . 16
13.6. draft-ietf-sieve-mime-00 . . . . . . . . . . . . . . . . 16 13.6. draft-ietf-sieve-mime-01 . . . . . . . . . . . . . . . . 16
13.7. draft-sieve-mime-loop-04 . . . . . . . . . . . . . . . . 16 13.7. draft-ietf-sieve-mime-00 . . . . . . . . . . . . . . . . 16
13.8. draft-hansen-sieve-loop-03 . . . . . . . . . . . . . . . 16 13.8. draft-sieve-mime-loop-04 . . . . . . . . . . . . . . . . 16
13.9. draft-hansen-sieve-loop-02 . . . . . . . . . . . . . . . 17 13.9. draft-hansen-sieve-loop-03 . . . . . . . . . . . . . . . 17
13.10. draft-hansen-sieve-loop-01 . . . . . . . . . . . . . . . 17 13.10. draft-hansen-sieve-loop-02 . . . . . . . . . . . . . . . 17
13.11. draft-hansen-sieve-loop-01 . . . . . . . . . . . . . . . 17
14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
14.1. Normative References . . . . . . . . . . . . . . . . . . 17 14.1. Normative References . . . . . . . . . . . . . . . . . . 17
14.2. Informative References . . . . . . . . . . . . . . . . . 17 14.2. Informative References . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 18
Intellectual Property and Copyright Statements . . . . . . . . . . 19 Intellectual Property and Copyright Statements . . . . . . . . . . 19
1. Introduction 1. Introduction
MIME messages ([RFC2045]) are often complex objects, consisting of MIME messages ([RFC2045]) are often complex objects, consisting of
many parts and sub-parts. This extension defines mechanisms for many parts and sub-parts. This extension defines mechanisms for
performing tests on MIME body parts, looping through the MIME body performing tests on MIME body parts, looping through the MIME body
parts, extracting information from a MIME body part, changing the parts, extracting information from a MIME body part, changing the
contents of a MIME body part, and enclosing the entire message within contents of a MIME body part, and enclosing the entire message within
skipping to change at page 4, line 10 skipping to change at page 4, line 10
the inner loop only operates on children of the bodypart currently the inner loop only operates on children of the bodypart currently
accessed by the outer loop.) If that MIME part is a terminal MIME accessed by the outer loop.) If that MIME part is a terminal MIME
part (i.e. does not contain other MIME parts) then the nested part (i.e. does not contain other MIME parts) then the nested
"foreverypart" loop is simply ignored. "foreverypart" loop is simply ignored.
Sieve implementations MAY limit the number of nested loops that occur Sieve implementations MAY limit the number of nested loops that occur
within one another, however they MUST support at least one nested within one another, however they MUST support at least one nested
loop inside another loop. loop inside another loop.
If a name is given to a "break" command, it terminates the closest If a name is given to a "break" command, it terminates the closest
enclosing loop with the identical matching name. It is an error if enclosing loop with the identical matching name. (If a nested
there is no enclosing loop with that name. "foreverypart" name is the same as a "foreverpart" name in an outer
level, the outer level name is hidden.) It is an error if there is
no enclosing loop with that name.
4. Changes to Sieve Tests 4. Changes to Sieve Tests
This specification extends the base Sieve "header", "address" and This specification extends the base Sieve "header", "address" and
"exists" tests to support targeting those tests at a specific MIME "exists" tests to support targeting those tests at a specific MIME
part or at all MIME parts in the enclosing scope. part or at all MIME parts in the enclosing scope.
4.1. Test "header" 4.1. Test "header"
The "header" test is extended with the addition of a new ":mime" The "header" test is extended with the addition of a new ":mime"
skipping to change at page 13, line 5 skipping to change at page 13, line 5
The "enclose" action creates an entirely new message, as compared to The "enclose" action creates an entirely new message, as compared to
just redirecting or forwarding the existing message. Therefore, any just redirecting or forwarding the existing message. Therefore, any
site policies applicable to message submission should be enforced. site policies applicable to message submission should be enforced.
The looping specification specified here provides easier access to The looping specification specified here provides easier access to
information about the message contents, which may also be achieved information about the message contents, which may also be achieved
through other sieve tests. This is not believed to raise any through other sieve tests. This is not believed to raise any
additional security issues beyond those for the Sieve "envelope" and additional security issues beyond those for the Sieve "envelope" and
"body" [I-D.ietf-sieve-body] tests. "body" [I-D.ietf-sieve-body] tests.
Any change in message content may interfere with digital signature
mechanisms that include that content in the signed material. In
particular, using "replace" makes direct changes to the body content
and will affect the body hash included in DKIM signatures, or the
message signature used for S/MIME or OpenPGP.
It is not possible to examine the MIME structure of decrypted content
in a multipart/encrypted MIME part.
When "enclose" is used on a message containing a multipart/signed
MIME part, the SIEVE implementation MUST ensure that the original
message is copied octet-for-octet to maintain the validity of the
digital signature.
The system MUST be sized and restricted in such a manner that even The system MUST be sized and restricted in such a manner that even
malicious use of mime part matching does not deny service to other malicious use of mime part matching does not deny service to other
users of the host system. users of the host system.
Any change in a message content may interfere with digital signature
mechanisms that include the body in the signed material.
All of the security considerations given in the base Sieve All of the security considerations given in the base Sieve
specification also apply to these extensions. specification also apply to these extensions.
12. IANA Considerations 12. IANA Considerations
The Original-Subject: and Original-From: headers are to be registered The Original-Subject: and Original-From: headers are to be registered
in the Permanent Message Header Fields table. in the Permanent Message Header Fields table.
The following templates specify the IANA registrations of the Sieve The following templates specify the IANA registrations of the Sieve
extensions specified in this document. This information should be extensions specified in this document. This information should be
skipping to change at page 14, line 47 skipping to change at page 15, line 11
RFC number: RFC XXXX RFC number: RFC XXXX
Contact address: The Sieve discussion list Contact address: The Sieve discussion list
<ietf-mta-filters@imc.org>. <ietf-mta-filters@imc.org>.
13. Change History 13. Change History
[[ RFC Editor NOTE: This section is to be removed prior to [[ RFC Editor NOTE: This section is to be removed prior to
publication as an RFC. ]] publication as an RFC. ]]
13.1. draft-ietf-sieve-mime-05 13.1. draft-ietf-sieve-mime-06
Added note to foreverypart about nested identical names hiding outer
names.
Added notes to Security Considerations section about it not working
on multipart/signed sections, and how replace/enclose may affect
signatures.
13.2. draft-ietf-sieve-mime-05
Changed for_every_part to foreverypart, and extract_text to Changed for_every_part to foreverypart, and extract_text to
extracttext. extracttext.
Add option :name parameter to foreverypart and break. break :name Add option :name parameter to foreverypart and break. break :name
"string" will break out of closest enclosing foreverypart loop "string" will break out of closest enclosing foreverypart loop
with that name. with that name.
Clarify nesting a bit more. Clarify nesting a bit more.
Minor consistency nit picking. Minor consistency nit picking.
13.2. draft-ietf-sieve-mime-04 13.3. draft-ietf-sieve-mime-04
loops are depth first loops are depth first
:anychild clarifications :anychild clarifications
update examples update examples
grammar nits grammar nits
transcoding for extract_text transcoding for extract_text
13.3. draft-ietf-sieve-mime-03 13.4. draft-ietf-sieve-mime-03
add extraction add extraction
add security considerations add security considerations
fill in iana considerations fill in iana considerations
13.4. draft-ietf-sieve-mime-02 13.5. draft-ietf-sieve-mime-02
minor syntax glitches in examples minor syntax glitches in examples
Add clarification on "replace" affecting subsequent for_every_part Add clarification on "replace" affecting subsequent for_every_part
loops? loops?
Add IANA considerations for Original-Subject: and Original-From:. Add IANA considerations for Original-Subject: and Original-From:.
Add note on "enclose" creating From: and Date: headers. Add note on "enclose" creating From: and Date: headers.
13.5. draft-ietf-sieve-mime-01 13.6. draft-ietf-sieve-mime-01
what happens when nested for_every_part loop's what happens when nested for_every_part loop's
a "mime" shorthand for testing the type/subtype, without requiring a "mime" shorthand for testing the type/subtype, without requiring
interactions with variables interactions with variables
notifications notifications
notifications to calendar service notifications to calendar service
address tests, exists tests address tests, exists tests
mimeheader, mimeparameter tests mimeheader, mimeparameter tests
13.6. draft-ietf-sieve-mime-00 13.7. draft-ietf-sieve-mime-00
Changed title and text to emphasize MIME Tests. Changed title and text to emphasize MIME Tests.
Changed for.every.part to for_every_part. Changed for.every.part to for_every_part.
Added :anychild to mime test. Default is to use the current Added :anychild to mime test. Default is to use the current
context or outer envelope; specifying :anychild will look at all context or outer envelope; specifying :anychild will look at all
children. children.
Added clarifications to replacing parts affecting the structure. Added clarifications to replacing parts affecting the structure.
Added :mime option to replace, ala draft-ietf-sieve-vacation-06. Added :mime option to replace, ala draft-ietf-sieve-vacation-06.
Various other minor nit fixes. Various other minor nit fixes.
13.7. draft-sieve-mime-loop-04 13.8. draft-sieve-mime-loop-04
update reference for recent published rfcs update reference for recent published rfcs
extract-text now required to do decode transfer encoding and extract-text now required to do decode transfer encoding and
transcode to UTF-8 transcode to UTF-8
removed editheader reference since its not actually used removed editheader reference since its not actually used
several text changes as suggested by Nigel Swinson, including re- several text changes as suggested by Nigel Swinson, including re-
writes to abstract and introduction writes to abstract and introduction
13.8. draft-hansen-sieve-loop-03 13.9. draft-hansen-sieve-loop-03
after enclosure, subsequent actions affect newly created message after enclosure, subsequent actions affect newly created message
synthesis of Date/From headers by the enclose action is no longer synthesis of Date/From headers by the enclose action is no longer
controversial controversial
Filled in Security Considerations Filled in Security Considerations
Picked up extract_text action from draft-ietf-sieve-notify Picked up extract_text action from draft-ietf-sieve-notify
Expanded the IANA considerations section Expanded the IANA considerations section
13.9. draft-hansen-sieve-loop-02 13.10. draft-hansen-sieve-loop-02
Update to 3028bis reference. Update to 3028bis reference.
Added 2119 conventions section. Added 2119 conventions section.
Terminology/title tweaks. Terminology/title tweaks.
Added informative references to body and editheader extensions. Added informative references to body and editheader extensions.
Added description of nested loops. Added description of nested loops.
Replaced mime test by extensions to header, address and exists Replaced mime test by extensions to header, address and exists
tests. tests.
13.10. draft-hansen-sieve-loop-01 13.11. draft-hansen-sieve-loop-01
Merged with draft-daboo-sieve-mime-00.txt. Merged with draft-daboo-sieve-mime-00.txt.
14. References 14. References
14.1. Normative References 14.1. Normative References
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996. Bodies", RFC 2045, November 1996.
 End of changes. 21 change blocks. 
34 lines changed or deleted 55 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/