Re: Fly in the ointment?

Ned Freed (NED@SIGURD.INNOSOFT.COM)
Tue, 25 May 1993 18:39:32 -0700 (PDT)

Date: Tue, 25 May 1993 18:39:32 -0700 (PDT)
From: Ned Freed <NED@SIGURD.INNOSOFT.COM>
Subject: Re: Fly in the ointment?
In-Reply-To: Your message dated "Mon, 24 May 1993 19:11:14 -0700 (PDT)"
To: Brian Capouch <brianc@saintjoe.EDU>
Message-Id: <01GYLPJNDR4I8ZE2XK@SIGURD.INNOSOFT.COM>

> Guess what? RFC822's less-than-80-chars-per-line limit *broke* my URLs
> into a couple of lines (at my conformance-enforcing MTA), and the
> embedded CRLF caused the mail daemon to interpret the URLs as two
> separate (nonsensical) pieces.

There is no such limit in RFC822. There are no explicit limits in SMTP either,
but implementations are only required to support lines of up to 1000
characters.

Incompliant mail systems do exist that truncate or wrap lines longer than
certain limits. (80 is a value that occurs in practice, notably in some
software on IBM mainframes.) This is one of the reasons for having
quoted-printable and base64 encodings in MIME. If encoding is used, however, it
is done as part of MIME processing and the net result should appear to end
users as a unified system that handles long lines properly.

Putting URLs into message or MIME content headers and not into message bodies
is another matter entirely. Both RFC822 and MIME permit various kinds of
folding in headers. Objects designed for embedding in message or content
headers therefore have to be specially designed with a syntax that both
conforms to the general syntax rules for headers and also permits full recovery
of the underlying data in the object no matter what sort of folding or
unfolding has been done.

For example, you cannot blithely use parentheses in the midst of any sort of
structured header; unquoted parentheses are reserved for use as comments.
Similarly, runs of linear white space are likely to get converted into
different numbers of characters, and this can even occur inside of quotes.

MIME also provides mechanisms that can be used to insulate arbitrary content
from the ravagings of header processing; see RFC1342 for details.

One of the obvious uses for URLs is in conjunction with MIME's
message/external-body mechansism. As such, there is a real need for a mechanism
that permits embedding of URLs in headers.

Ned