[EAI] Comments on the DSN draft (draft-ietf-eai-dsn-00.txt)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EAI] Comments on the DSN draft (draft-ietf-eai-dsn-00.txt)



There have been discussions on some aspects of this draft, but no overall review, and in particular no discussion of exactly which new media types need to be defined. I apologise for not respondig earlier.

Abstract

   Delivery status notifications (DSNs) are critical to the correct
   operation of an email system.  ...

DSNs and mentioned here but not MDNs, which are also covered by this draft. OTOH:

1.  Introduction

Mentions MDNs but not DSNs. Both places should mention both, and their full text versions and RFC refs at least here.

3.  UTF-8 Address Type

Our documents seem divided upon whether we speak of "UTF8" or "UTF-8". Please can we have a consistent usage throughout the whole series? I don't mind which, but I note that the charset registered with IANA is "utf-8" (though it could do with "utf8" as an alias). OTOH, I think most of our present drafts tend to use "utf8", and certainly use of "utf-8" in this document has lead to a proliferation of hyphens, as in "utf-8-delivery-status".

   utf-8-type-addr     = "utf-8;" utf-8-address

   utf-8-address       = "<" Mailbox [ *WSP "<" Mailbox ">" ] ">"
          ; The first  occurrence of 'Mailbox' is defined in [utf8smtp]
          ; The second occurrence of 'Mailbox' is defined in RFC 2821

This has already been discussed. We should always look to [utf8headers] for the syntax of bits and pieces inside messages ([utf8smtp] is for stuff that goes in the envelope - OK, some syntactic objects, as this one, can occur in both). Moreover <Mailbox> (in RFC 2822 terminology) includes the <display-name>, which I don't think we want here. So what you actually need to say is:

   utf-8-address       = angle-addr ; as defined in [utf8headers]

4.  UTF-8 Encoded Address Type

We discuused this. It is unfortunate that we cannot use <xtext>. I think we more-or-less agreed that a "%hex" encoding of the UTF-8 was the best solution. Sadly, this format will often turn up in message/delivery-status and in whatever/utf-8-delivery-status, and it is an open question as to whether user agents will be able to restore it to its UTF-8 form.

5.  UTF-8 Delivery Status Notifications

In order to discuss this, I am going to introduce various scenarios that we need to cope with.

Scenario 1
----------

Envelope contains MAIL FROM: utf-8 at utf8, but with no ALT-address.

If this message gets downgraded, a DSN can never be returned to the originator. Therefore the downgrade process MUST generate a "relayed" DSN, even though the next hop does advertise DSN.

Scenario 2
----------

Envelope contains MAIL FROM: utf-8 at utf8 with ALT-address ascii at ascii.

A DSN may then sometimes be sent to ascii at ascii, which may or may not be able to render any utf-8-enc within it (and might even not reach the smae person/site as utf8 at utf8 - though that could be regarded as the Sender's fault).

Scenario 3
----------

The message gets downgraded before it reaches the Reporting MTA (which may or may not be the final delivery MTA). In this case

   RCPT TO: contains to-alt-ascii at to-alt-ascii
   ORCPT contains utf-8-enc: to-utff8 at to-utf8 (%hex encoded)

The Reporting MTA will now generate a DSN with
   a message/delivery-status containing
      ORCPT: utf-8-enc;  to-utff8 at to-utf8 (%hex encoded)
      ENVID: whatever. but %hex encoded
      Reporting-MTA: dns; r-ascii.example
   plus either
      a text/rfc822-headers containing the downgraded headers
   or
      a message/rfc822 containing the full message as downgraded.

The DSN is sent to to ascii at ascii. It is an open question whether ascii at ascii can display the %hex material, or the text/rfc822-headers or message/rfc822 in an upgraded form.

Scenario 4
----------

The message arrives at a Reporting MTA which understands UTF8SMTP.

I am going to intropduce several versions of this scenario.

Version 4a, following the draft as currently written.
-----------

The Reporting MTA will now generate a DSN with
   a message/utf8-delivery-status containing
      ORCPT: utf-8; to-utff8 at to-utf8 (still as utf-8)
      ENVID: whatever, still in utf-8
      Reporting-MTA: dns; r-utf8.example
but Oops! RFC 3461 does not allow that, so instead use
                     utf-8-dns; r-utf8.example
or alternatively
                     dns; r-utf8-in-punycode.example
   plus either
      a message/utf-8-headers containing the original headers
   or
      a message/utf-8 containing the full original message

The DSN is sent to utf8 at utf8 plus ALT-ascii at ascii (if an ALT return address is available).

But, as we have already discussed, all that doesn't work because this DSN may go via a route which needs to downgrade it to non-8BITMIME. And sadly you cannot use a C-T-E of Q-P or Base64 on a message type. Moreover the only message type that current 8BIT downgraders know how to deal with is message/rfc822.

And why use message/utf-8-headers when the obvious extension of the current DSN mechanisms would have been text/utf-8-headers.

Version 4b, using the simplest fixes, as already dicussed.
-----------
The Reporting MTA will now generate a DSN with
   an application/utf8-delivery-status containing
      exactly the same as above
   plus either
      a text/utf-8-headers containing the original headers,
      and specifying charset=utf-8
   or
      an application/utf-8 containing the full original message
and delivered as before.

The two application types are opaque as far as current agents are concerned (being treatable as application/octet-stream), but may be unwrapped by UTF8SMTP-capable agents (and in particular displayed sensibly by UTF8-capable user agents).

The text/utf-8-headers will come to no harm since existing agents will treat it as text/plain (and could even display ir correctly as such).

But can we do better than this?

Version 4c.
-----------

Recall that there will be two types of email message in future:

"ASCII" messages as defined in RFC 2822 plus the MIME standards
"UTF8SMTP" messages, as defined in [utf8headers] which _extends_ RFC 2822,
and could as easily extend the MIME standards


BUT there is a strict requirement that UTF8SMTP messages are allowed ONLY in the UTF8SMTP Universe, and MUST NOT be seen in the current ASCII Universe. So at the boundary between those Universes there must be either downgrading or bouncing.

I think we are already agreed that the only way to detect that a given message is or is not a UTF8SMTP one is to recursively descend through its MIME structure looking for UTF-8 headers, and that downgrading will involve such a (and probably the same) recursive descent. Also that mesasage/utf8 objects (as extended) will contain UTF8SMTP messages (that is going to happen whether we like it or not, so we may as well ensure that it works, and is covered in the downgrading rules).

So let us take that principle a little further, and try to extend the existing DSN media types. There are three of them to consider, and we may or may not be able to fix them all.

The Reporting MTA will now generate a DSN with

4c(i) a message/delivery-status (extended) containing
ORCPT: utf-8; to-utff8 at to-utf8
ENVID: whatever. in utf-8
Reporting-MTA: dns; r-utf8.example (we seen to have extended "dns"
as well, or else we use "utf-8-dns")
PROVIDED a downgrade of message/delivery-status to what you saw in Scenario 3 is defined;


plus either
4c(ii) a text/rfc822-headers (extended to allow a charset=utf-8 parameter and
using C-T-E: 8bit) containing the downgraded headers
HMMMMM! Can we get away without a downgrade there? It would almost certainly pass unscathed through the existing network, though existing user agents might baulk at displaying it. For sure, existing 8BITMIME downgraders would handle it correctly.


or
4c(iii) a message/rfc822 (extended) containing the full original message
PROVIDED a downgrading is defined. But we are almost certainly going to define that downgrading anyway.


So, of those three cases, I think (iii) is the easiest to achieve (and also the most desirable to achieve) and (i) is the hardest. But they should all be thought about.

Scenarion 5
-----------

The message arrives at a Reporting MTA which understands UTF8SMTP which generates a DSN as in (some version of) Scenario 4 above.

Subsequently (perhaps even at that same Reporting-MTA) it needs to be downgraded (because the Return-Path may follow a different sequence of MTAs than simply the reverse of the original path).

What happens here has largely bee discussed already under Scenario 4.

But there still remains the open question of whether it can all be displayed neatly when it gets back to the original sender.

6.  UTF-8 Message Disposition Notifications

I have not considered this is detail, but whatever we do regarding the scenarios for the DSN cases could equally well be applied here.

--
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 ;    Web: http://www.cs.man.ac.uk/~chl
Email: chl at clerew.man.ac.uk      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5


_______________________________________________
IMA mailing list
IMA at ietf.org
https://www1.ietf.org/mailman/listinfo/ima




Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.