ietf-mta-filters
[Top] [All Lists]

Re: sieve-06bis

1999-02-16 15:22:41
Date: Tue, 16 Feb 1999 11:01:03 +0100
From: Michael Salmon <Michael(_dot_)Salmon(_at_)uab(_dot_)ericsson(_dot_)se>

| Implementations decode header charsets to UTF-8.  Two strings are
| considered equal if their UTF-8 representations are identical.
| Implementations should decode charsets represented in the forms
| specified by [MIME] for both message headers and bodies.
| Implementations must be capable of decoding US-ASCII, ISO-8859-1,
| the ASCII subset of ISO-8859-* character sets, and UTF-8.

I think that ISO-8859-15 would be more appropriate than -1, it fixes 
the bugs in -1 and adds the euro.

For better or worse, I believe 8859-1 is more common and should be
required, but I don't have a string opinion on the subject.

Is this not the case?

| If implementations fail to support the above behavior, they MUST
| conform to the following:
| 
| No two strings containing 8-bit data can be considered equal.

I agree with what I think that you mean but shouldn't it say something 
more like:

No two strings can be considered equal if either string contains octets 
greater than 127.

You're right; changed.

[...]
| 2.10.3.  Message Uniqueness in a Mailbox
| 
| Implementations SHOULD NOT write a message to a mailbox where a copy
| of it already exists, even if a script explicitally asks for a
| message to be written to a mailbox twice.
| 
| The test for equality of two messages is not defined by this memo.

I think that this is a little tough although of course it isn't 
mandatory. Perhaps it should be mandatory for a script to not deliver 
more than once to a mailbox .

I'm not sure what you want.  That language is weasily enough to allow an 
awful lot, quite possibly too much.

The reason for that second paragraph is that I consider two messages
with the same message-id equal enough, but others will want to compare
bodies in some meaningful way.

What should happen if a require is not satisfied? I would guess that a 
required extension would be checked when the script was loaded but what 
happens if an extension is removed?

The script doesn't run at all.  I've added this sentence to 2.10.5:

| If a script does not understand an extension declared with require,
| the script must not be used at all.

[Re: 9.1 definition of multi-line]
This is slightly different to the definition in 2.4.2 in that it allows 
white space after the :.

2.4.2 fixed.

[...]
| In order to prevent mail loops, an implementation MUST refuse to
| filter a message that it has already filtered once; that is, a
| message must not pass through a given server twice.

This seems excessive to me, especially as servers are becoming larger 
and larger all the time. I think that mail loops would be prevented if 
a message could only be kept or discarded when it had been seen twice 
by the same user.

How would one write such a script?

I think that this should be on a per-user basis, not a per-server basis,
and I'll fix it accordingly:

| In order to prevent mail loops, implementations must prevent messages
| from passing through a given user twice.

I think this is what I intended, and I believe it's a clear improvement.

I only want to discuss the case where a user relays a message to himself 
(i.e., a loop).  Two messages with the same message-id can have
different return-path values (say, if one hits a mailing list) and I
don't want to require anything in that case; that's normal and fine and
scripts should handle it accordingly.

-- 
Tim Showalter <tjs+(_at_)andrew(_dot_)cmu(_dot_)edu>


<Prev in Thread] Current Thread [Next in Thread>