[Top] [All Lists]

Re: How to handle a lot of character set Content-types

1991-05-07 02:16:01
Yeah!  Lets just forget the whole bit about what is an MTA or UA and
just write code!  All this effort to sort things out and develop a
clear model of what we can and should do is just getting in the way.
LETS GO CUT SOME DAMN CODE!  Who cares how it interworks anyway?

Hey, not fair to wait till I thought it was safe to take off my flame-proof

If neither my original message nor the response are strong on unemotional
argument then the responder can hardly be blamed. I'll have a go at starting
again in a calmer style.

First let me explain my regrettable remark about OSI at the beginning.
I once heard a story that someone criticised an OSI implementation (perhaps
ISODE) because some of the layers were implemented as subroutines
instead of as separate processes as described in the reference model. I
thought this criticism very silly, so I was very abashed to find myself
making what I took to be the same mistake. My suggestion that I actually
caught this mistake from OSI was frivolous. I don't even think that it
is wrong to model things as discrete processes as long as we realise that
it is just a model. Implementations of protocols must be judged by their
correctly interacting with the outside world, not by their internals. [And
I don't by that mean to imply that we should start programming without
careful consideration of the model].

It is hard to blame current implementations for not respecting the Internet
MTA-UA model since there is no such model. When such a model is developed
I don't think it will describe a protocol like P7 between the MTA and UA.
Rather I expect that it will say that it is the job of the MTA to get the
message in/out and not to change it. The user must have control of all
transformations of the message leading to/from the display of the message
in front of the user.

It is easier to think about these things in a concrete setting, so let's 
consider one of the particular cases that concern me.

Many people currently use 8-bit UAs (in conjunction with illegal MTAs).
When we move into the legal world some of those messages will start coming
in in 7-bit quoted-printable. The users might like to get a new UA that
understands that, or they might like to have the message pre-processed
so that they can keep using their existing UA. There are various styles
in which this might be done and you might like to consider which if any
are acceptable.

1. The user specifies in a file under his own control (e.g. .forward) that
   incoming messages should be piped through a program

        "| convert-to-8-bit-if-necessary-and-put-in-my-mailbox"

   This is clearly under the user's control and I suspect that most of you
   will find it acceptable.

2. The user specifies in some file under his control that he would like some
   system process to convert the message for him before sticking it in his
   mailbox. Perhaps a file .mailfilter has the line "convert-to-8-bit". This
   still seems to be firmly under the user's control so I expect that people
   will be happy with it.

3. Does it make any difference if the system process in (2) is code inside a
   process which performed the MTA function?

4. What if "convert-to-8-bit" is the default and the user has to put something
   in his .mailfilter file to prevent it?

5. What if the specification of the convert operation is in a system file. If
   the user wants it changed he has to ask the postmaster?

6. What if the postmaster says "My users are too dumb to know about 7-bit
   encodings. I convert all their incoming messages and I don't even tell
   them about it." Are we going to say that system administrators are not
   allowed to have this level of control?

Your call.

Bob Smart