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>