Random points plus a proposal for a format for notifications/acks.

Bob Smart <smart@mel.dit.csiro.au> Sun, 27 June 1993 13:15 UTC

Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa10646; 27 Jun 93 9:15 EDT
Received: from CNRI.RESTON.VA.US by IETF.CNRI.Reston.VA.US id aa10642; 27 Jun 93 9:15 EDT
Received: from ics.uci.edu by CNRI.Reston.VA.US id aa01887; 27 Jun 93 9:15 EDT
Received: from ics.uci.edu by q2.ics.uci.edu id aa18474; 27 Jun 93 6:12 PDT
Received: from shark.mel.dit.csiro.au by q2.ics.uci.edu id aa18463; 27 Jun 93 6:12 PDT
Received: from squid.mel.dit.CSIRO.AU by shark.mel.dit.csiro.au with SMTP id AA19372 (5.65c/IDA-1.4.4/DIT-1.3 for <ietf-ack@ics.uci.edu>); Sun, 27 Jun 1993 23:12:39 +1000
Received: by squid.mel.dit.CSIRO.AU (4.1/SMI-4.0) id AA29020; Sun, 27 Jun 93 23:12:21 EST
Message-Id: <9306271312.AA29020@squid.mel.dit.CSIRO.AU>
To: ietf-ack@ics.uci.edu
Cc: smart@mel.dit.csiro.au
Subject: Random points plus a proposal for a format for notifications/acks.
Date: Sun, 27 Jun 1993 23:12:20 +1000
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: Bob Smart <smart@mel.dit.csiro.au>

I hope a WG for mail notifications is set up. I would like to
emphasize that even though there are some difficult issues that
might not be immediately resolvable, there is a core of things that
such a WG could do which would be uncontroversial and would at
least improve interoperability with X.400 and other e-mail protocols.
A few points.

1. Last time this issue was raised the term "acknowledgement" was used
for two different things.

  a. Any message containing information about the status of a message:
     indicating success, failure or something in between.

  b. A specific sort of notification: a delivered-to-mailbox acknowledgement
     (whatever that might mean).

So I suggest that we use "notification" for any message describing the
status of a mail message, and I will do so here. This has the advantage
of X.400-compatibility which, as Nathaniel says, is a major aim.

2. We always have a lot of debate about what notifications should be
generated and who should generate them and under what circumstances.
But what we can agree (I hope) is that there should be a standard format
for notifications and all notifications should have a standard format.
I have brought my proposal of May 91 up to date with respect to MIME
rules and it is appended to this message.

3. There is value in defining names for notifications that are needed for
gatewaying to other mail systems even if we don't initially define any
mechanism for generating them in the context of pure Internet mail. For
example suppose we define "delivery-ack" to be the notification name for
delivery acknowledgements as in X.400. Then if a message is sent from an
X.400 UA with a request for a delivery notification and the message goes
to the recipient by X.400 all the way and a delivery receipt is generated.
The delivery receipt may not be routed back along a pure X.400 path. It
might get converted to RFC822/smtp then converted back to X.400 before
getting to the original sender. In that case it will be desirable if the
delivery notification can be in a standard format while crossing smtp-land
so that it can be translated back into an X.400 delivery report before 
finally getting back to the sender. There are various other scenarios where
notifications other than error notifications might get into the smtp
arena without being generated by Internet mail software.

So the proposed agenda for a Notification/Acknowledgement WG would be

 Aug 93  Internet Draft specification for a standard format for notifications

 Nov 93  Internet Draft spec defining names for common forms of notifications
         to be used in notification messages and requests.

 Dec 99  Standard for how Internet users request that specific sorts of
         notification should be returned or suppressed, and description of
         what agents should generate the notification and under what
         circumstances. [I hope I've left enough time for this].

Anyway here's a rough spec for the format for notifications.

Bob Smart

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    Proposed Format for Internet Mail Notifications
    -----------------------------------------------

The Everhart/Borenstein draft adds the header "Ack: <msg-id>". I would
like to make 2 changes to this.

  a. I would like to add the Ack-type as an extra parameter, with an
     Ack-type of "error" for non-delivery notifications.

  b. I would like to change "Ack:" to "Notification:" because

	Ack: error <msg-id>

So the first plank of my notification format is that it contains the header

	Notification: <ack-type> <msg-id>

e.g.
	Notification: error <123@ics.uci.edu>

We often want to return the message in a body-part of Content-type
message/rfc822. We also need a body-part with explanatory information, some 
of which is for human consumption and some that can be processed automatically.

The stuff that the UA needs to know to be able to automatically resend the
message is envelope data. To have a chance of doing anything automatically
it also needs some keyword style version of the error code. 

So putting it together in an example:

	...other headers...
	Subject: error return (your original subject line in parentheses)
	Notification: error <123@mel.dit.csiro.au>
	Content-type: multipart/mixed; boundary=whatever

	--whatever
	Content-type: application/notification
	Content-description: information about the error notification.

	Notification-code: Content-transport-encoding-rejected
	Original-envelope-from: <smart@mel.dit.csiro.au>
	Recipients: x@y.zz, xx@y.zz

	The following message can not be delivered because it has
	8-bit Content-transport-encoding and the next step to the
	recipient will only support 7-bit encoding. The gateway issuing
        this error does not support changing Content-transfer-encoding.
        You might change the Content-transport to base64 or quoted-printable 
        or convert the Content-type to one that does not need 8-bit octets.

	A transcript of the SMTP session follows:

		EHLO manta.mel.dit.csiro.au
		250-EXPN
		250 y.zz
		QUIT

	--whatever
	Content-type: message/rfc822
	Content-description: your original message.

	...return message goes here...
	--whatever--

Note that it is important that the information returned must include
a list of the envelope recipients for which the error return applies.
This allows the sender (or perhaps automatic software on his behalf!)
to modify the message and resend it to only those recipients who failed
to get it in the original mailing.

Obviously we need to enumerate a reasonable set of keywords for different
error events of interest, plus a miscellaneous one. Also the second
body-part containing the original message will be optional: it won't be
needed on positive notifications and if we generate them from NDNs at
an X.400 gateway we won't be able to provide them for errors either in
some cases.

There are circumstances where only the headers, or the headers + the start
of the message are returned. [Indeed if the message is 8BITMIME and 
the gateway can't convert it and the choice of return path is 7BIT (very
unlikely combination) then the gateway won't be able to include the body
of the message]. For this we could define message/extract or we could
say this is no longer a message and return it in a text/plain bodypart.

A key question is how this will work with X.400 gateways. Given that the
original message has been converted to rfc-822/MIME style with rfc987+ and 
then later bounced: can an X.400 gateway convert a bounce message in the 
above style into a legal X.400 NDN that clearly refers to the original 
X.400 message? Similarly going the other way: can an X.400 NDN be converted 
into a message in this format that refers to an original rfc-822 message 
that went into x.400-land?

Bob Smart