Arnt Gulbrandsen wrote:
Alexey Melnikov writes:
Also, Arnt has raised a good question about whether implementations
are allowed to strip/alter garbage in :message or subject URI header.
I think this should be addressed as well.
This text from 2119 describes what we want perfectly, IMO: "there may
exist valid reasons in particular circumstances to ignore a particular
item, but the full implications must be understood and carefully
weighed before choosing a different course."
While using SHOULD here might be fine, not describing valid reasons for
violating the SHOULD when they are known in advance is a very bad thing.
I always prefer documents that explain background/motivation.
Also, image that we update the text to read:
o The "Subject:" field of the notification message SHOULD contain the
value defined by the :message notify tag, as described in
[Notify]. If there is no :message tag and there is a "subject"
header on the URI, then that value SHOULD be used. If that is
also absent, the subject SHOULD be retained from the triggering
message. Note that Sieve [Variables] can be used to advantage
here, as shown in the example in Section 3.
I read this as allowing an implementation to ignore :message and/or the
Subject URI header unconditionally. Is this something we actually want
to encourage? I certainly wouldn't want to.
A much better approach is to at least explain what are valid reasons for
violating the SHOULD and optionally use MUSTs.