Re: if you really want utf-8 headers...

Keith Moore <[email protected]> Tue, 6 Jan 2004 19:10:58 -0500
Newsgroups gmane.ietf.imaa
Message-ID <[email protected]>
> Even potentially without an SMTP extension, I think that defining
> a new header format and a way to down- and upgrade is important,
> because only this will allow things such as simplified clients
> based on upgraded delivery agents,...

I think we should think in terms of a new message format, not merely a 
new header format, because MIME is so complex and so irregular (some 
would say baroque) that the amount of simplification you get from 
having utf-8 in message headers is only a small part of that which 
could be gained.  even if you have utf-8 transparency, mail readers 
still need to know how to parse address fields, normalize/canonicalize 
addresses, look up IDNs, etc.  you still need to deal with RFC 2047 in 
received messages and old messages.  you still have to support a 
different syntax for each different header or bodypart field.  compared 
to all of this cruft, the extra overhead required to translate 
addresses between ACE and raw UTF-8 is minimal.

> And once we are there,
> defining an SMTP extension isn't really a big deal, although
> adoption may take quite a while.

the big deal is the leakage and damage to messages that we can expect 
from the extension.

>> b) we could use the expensive upgrade to drastically improve email
>> service in many other ways than just to provide IMAs.
>
> If it were up to you alone to choose, what would you do in that 
> upgrade?

off the top of my head?

for mail transport:
- clean separation between relaying and submission - MUAs talk only to 
submission servers
- mutual authentication (say, based on TLS) would be required
- all messages reliably traceable to origin submission server
- sending MTAs would require external registration (say, in DNS)
- binary transparency assured
- true pipelining
- checkpoint/restart
- engineered so that most failures and configuration errors are 
detected and reported at the point where corrective action can be taken
- well-defined behavior for multiple servers
- discourage store-and-forward processing - most messages should make 
one hop from the submission server to the recipient's message store  
(pass-through processing would be available for routing through local 
proxies/firewalls)
- option to request immediate (pass-through) delivery
- ability for submission server to poll for delivery completion 
(submission server is responsible for ensuring that the message is 
delivered rather than expecting a message to be mailed back to the 
sender)
- explicit support for proxies/firewalls/filters  (i.e. the behavior is 
defined as part of the protocol)
- fast, easy to parse PDU format
- built-in ability to query recipient capabilities, including recipient 
filtering preferences
- built-in content negotiation ability
- [maybe] ability to use e.164 addresses as recipient addresses (for 
voice mail, fax, sms, etc.)

for message format:
- text header fields in utf-8
- binary transparency for all body parts and extension fields
- extremely regular, easy to parse, probably binary, format
- directories for multipart messages to allow quick access to 
individual message components
- alignment with [2]822/MIME data model, field names, content-type 
names, charset names, etc.
- s/mime compatibility (yes, I think I know how to make this work)
- clean separation between: envelope/trace information, information for 
the recipient UA, information supplied and/or used by recipient message 
store
- ability to associate additional information with header addresses - 
multiple names (in different languages), spoken name, photo, alternate 
addresses (including E.164 & IM), web page URL.
- ability to specify which recipients the message author(s) think 
should be included, by default, in a reply-to-all
- all messages traceable to origin domain, with opaque "nonce" 
sender-ID traceable to message author (with provision for author to be 
anonymous, but recipients don't have to accept anonymous mail)
- well-defined spec for downgrading to 2822/MIME such that there is a 
repeatable, "canonical" translation

of course, the devil is in the details, and I'm sure I wouldn't get 
agreement on all of these features.  but I'm convinced most of this is 
technically feasible.