ietf-822
[Top] [All Lists]

Angle brackets surrounding Content-ID

2004-09-23 07:14:00

I have received e-mail from an implementor, who has noted
a discrepancy between RFC 2110 and 2112 regarding the syntax
of the start parameter to the Content-Type: Multipart/related
defined in RFC2112 and used in some examples in RFC 2110.

RFC2112 says that there should be angle brackets around
the value of the start parameter, e.g.

    Content-Type: Multipart/related; boundary="boundary-example-1";
    type=Text/HTML; start=<foo3*foo1(_at_)bar(_dot_)net>

but RFC2110 has some examples without these angle brackets, e.g.

    Content-Type: Multipart/related; boundary="boundary-example-1";
    type=Text/HTML; start=foo3*foo1(_at_)bar(_dot_)net

My conclusion is that since RFC2112 is the document which
defines this parameter, it should take precedence and
RFC2110 is incorrect in its examples. However, a good
implementor should certainly strip these angle brackets
from all Message-IDs (wherever they occur) before
comparing them with other Message-IDs or using them
in any way. A good implementor should also accept the
incorrect syntax without these angle brackets in what
it receives, but always use the angle brackets in what
it produces.

With this message I only want to check that other e-mail
experts agree with this. Below is quoted some mail exchange
between me and the implementor.

I am sending this message to the ietf-822 mailing list,
since the MHTML mailing list does not work any more.
If there is need for much more discussion about MHTML,
I can if needed try to resurrect the MHTML mailing list
using a new listserver.

At 13.35 -0700 04-09-20, Nate Waddoups wrote:
In section 9.2 of RFC 2110, there is an example message with suspicious
syntax and I was hoping you could clarify it for me.  The content-type
of the messages's root is:

   Content-Type: Multipart/related; boundary="boundary-example-1";
       type=Text/HTML; start=foo3*foo1(_at_)bar(_dot_)net

The Content-ID of the first child of that multipart/related part is:

   Content-ID: <foo3*foo1(_at_)bar(_dot_)net>

Notice that one has angle brackets and the other does not.  Is this
legal MIME or is this an error in the example message?  The BNF for the
start parameter indicates that the angle brackets are required but I
want to make sure that I am not overlooking something.


At 17.17 +0200 04-09-21, Jacob Palme wrote:
Funny that no one has mentioned this discrepancy before.

Since RFC2112 is the document which defines the start
parameter, a natural assumption is that that is the correct
thing to do. This is a normal principle in IETF that if
there is a discrepancy between two documents, the one which
standardizes a feature has precedence.

An implementor should of course follow the golden rule: "Be
liberal in what you accept, be conservative in what you
send". Thus in this case accept both syntaxes in incoming
messages, but use the right format when producing new
messages.

There is a risk that actual implementors will read RFC2110
and implement the syntax without angle brackets. If one
wants to tackle this problem really seriously, one should
perhaps send messages with both syntaxes to some of the
mostly used mailers and see which format works best with
them.

There is a mailing list on the MHTML standard, which was
used when the standard was developed. It has been inactive
for a long time, but I will try to write a message to it,
to check if someone else has a comment on this.

At 13.53 -0700 04-09-21, Nate Waddoups wrote:
The fact that the start parameter in the example message lacks angle
brackets is not my primary concern... What concern me most is that the
start parameter value is different from the Content-ID value, in that
one is surrounded by angle brackets and the other is not. 

If a mail client matches a start parameter to a Content-id by stripping
the outer angle brackets from the start parameter prior to comparison,
would that be considered "liberal" or just "broken?" 


At 10.44 +0200 04-09-22, Jacob Palme wrote:
I would certainly recommend doing that, stripping angle
brackets from both the "start" and the "Content-ID" value
(and anywhere else where a message-Id or Content-Id occurs)
before storing, comparing or doing anything with them.

One can compare with SMTP, where the correct syntax is
MAIL FROM:<sender(_at_)host(_dot_)net>
but where many good SMTP softwares will accept variants like
MAIL FROM:sender(_at_)host(_dot_)net
or
MAIL FROM: <sender(_at_)host(_dot_)net>

according to the "be liberal in what you acccept" principle.

-- 
Jacob Palme <jpalme(_at_)dsv(_dot_)su(_dot_)se> (Stockholm University and KTH)
for more info see URL: http://www.dsv.su.se/jpalme/


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