hansen(_at_)pegasus(_dot_)att(_dot_)com (t.l.hansen) writes:
I disagree strongly with this sentiment. If there is no MIME-Version:
header, the message is not in MIME format,
RFC 1341 does not support your position. If there is no MIME-Version:
header, the message was composed with software which is not compliant
with RFC 1341. This does not necessarily imply that the message is
not in MIME format--there will be other RFC's which will supersede RFC
As I mentioned before, RFC 1341 does not permit MIME readers to ignore
Content-* headers in the absence of a MIME-Version: header. RFC 1341
defines a number of headers (Content-Type, etc) and a number of values
(multipart/alternative, etc) with associated interpretations.
Appendix A sets a minimal set of requirements for an implementation,
including that the implementation recognize certain values of those
headers and interpret them according to the specification. Nowhere in
RFC 1341 is there an exception allowing an implementation to ignore a
Content-* header in the absence of a MIME-Version: header. Thus, an
implementation that ignores Content-* headers in the absence of the
MIME-Version: headers is not minimally conformant with RFC 1341.
and expecting the Content-*:
headers to be in comformance with the MIME format when there is no
MIME-Version: header is asking too much. The Content-Type: header has been
around for a LONG time, and many providers have done various things with it.
Unfortunately, these things are NOT necessarily compatible with MIME.
Please give an example of a pre-MIME Content-Type: header that
both matches the BNF for a MIME Content-Type and has an interpretation
not in conformance with the MIME format. All pre-MIME Content-Types I
am aware of do not have a "/" character in them, so they fail the
If it doesn't say it's MIME, then it's not MIME. Sorry, but it's true.
A syntactically valid MIME Content-* header is sufficient for a
message to say it's MIME.
An implementation which wishes to distinguish between a MIME message
and a pre-MIME message can do so by checking for the existence of a
*syntactically valid* Content-Type: or Content-Transfer-Encoding:
_.John G. Myers Internet: jgm+(_at_)CMU(_dot_)EDU