Jutta Degener <jutta(_at_)sendmail(_dot_)com> writes:
[ This is a much revised version in response to the calls for more
text processing before a match on this list. --Jutta]
A New Internet-Draft is available from the on-line Internet-Drafts
directories.
Title : Sieve -- 'body' extension
I like this version much better, but still some small
comments/nits/thoughts:
0) No way to split based on MIME structure or MIME headers. Compare
the complex MIME-parsing features of the IMAP FETCH BODY[] command.
It may take the sieve body extension too far to dvelve into a
full-blown MIME parser, but it might be useful some day. E.g.,
split all OpenPGP multipart/encrypted mail into one folder, all
S/MIME multipart/encrypted mail into another folder.
Two issues regarding the text:
,----
| MIME parts encoded in a content transfer encoding must be decoded,
| and text MIME parts in charsets other than UTF-8 MUST be converted
| to UTF-8 prior to the match.
`----
1) Converting into UTF-8 is non-trivial. Standards wise it is not
even defined what this means, since I don't know of any standards body
that publish official transcoding tables. It is possible for
transcoding tables "out there" to even conflict (e.g. CP437 used in a
german environment may transcode differently than CP437 used in a
greek environment). I suggest at least noting that this is
non-trivial, but that such efforts should however be made, and the
exact implementation is left to local policy.
2) CTE "decoding" is a bit loose. I suggest specifying that
implementations must support some set of common CTE's, such as
base64, qp, 8bit. It may make sense to discuss what should happen
if CTE is syntactically incorrect, or contains a value which the
implementation does not support (e.g., "x-yenc").
3) What about multipart/partial?
4) (Revealing my ignorance:) Are sieve scripts binary clean? If I
want to implement something like the unix "file" command in a sieve
script to split some data into special folders depending on magic
values in the file, I might need to express binary data.