An MDN is be created from a non-AS2 (or non-AS3) message if the
following headers exist on the requesting (subject) message:
Disposition-Notification-To.
Return-Path.
Message-ID.
The Disposition-Notification-To
and Return-Path header must be the same. Comparison of
these headers is
done using the BNR defined addr-spec portion.
Any phrase or routes are
excluded from the comparison. Furthermore, the comparison is case
sensitive for the local-part and case insensitive for the domain part.
For example, the local-part "john.smith" is not the same as
"John.Smith", but the domain "anon.global.com" is the same as "Anon.Global.Com".
FREDI builds the MDN based on the field values of headers in the
subject message, and errors discovered in it:
Message Headers. The following headers are created
when an MDN is built.
MIME-Version. The default value is set to
"1.0".
Date. The default value is set to the current
date.
Content-Type. The default value is set to "multipart/report; report-type=disposition-notification;
boundary="default.boundary.mdn". However, the
boundary of the MDN is whatever has been set on the subject
message of the mailDocument
object and concatenated with the string ".mdn".
That is, if the boundary was set to "fredi.boundary",
then the MDN boundary is "fredi.boundary.mdn".
From. The value set here is taken from the
subject message header To field.
1st Body Part. The first body part is created as
follows:
No field header is created.
The human readable text depends on the existence of the
following headers in the subject message:
Subject. The value of this header is enclosed
in quotes when inserted into the readable text.
To.
Message-ID.
Date. The value of the date header follow the
Date
syntax. If the syntax is not valid then the
current date is used.
The values of these fields are inserted into the text as
follows:
The message [ with message ID <Message-ID>]
[ sent on <Date>] [ to <To>] [ withsubject <Subject>] has been processed.
This does not guarantee that the message has been read or
understood.
A bracketed phrase indicates that the phrase occurs only if the
value of that field exists. For example, if the headers have the
following values:
SUBJECT = "Syntax of MDN"
TO = "James"
MESSAGE-ID = "123@global.com"
DATE = <Empty>
The text would read:
The messagewith message ID 123@global.com to
James withsubject "Syntax of MDN" has been processed.
This does not guarantee that the message has been read or
understood.
2nd Body Part. The second body part is created as a
composite message and constructed as follows:
The Content-Type headeris created and its
value is set to "message/disposition-notification".
A body part is created in this body part and is constructed as
follows:
Reporting-UA. This header is created if the
value assigned to the property Property_Reporting_UA
in mailDocument
exists. The value of this header is set to the
property value.
Original-Recipient. This header is created if
the subject message also has an Original-Recipient
header with a value. The value of this header is
formed with the string "rfc822;" attached to the
beginning of the value. For example, "rfc822; John <JSmith@somesite.com>"
where "John <JSmith@somesite.com>" is the Original-Recipient
of the subject message. If a corresponding Original-Recipient
header is not in the subject message or no value is present,
then this header is omitted in the MDN.
Final-Recipient. The value from the From
field of the MDN message is assigned to this header.
It is formed with the string "rfc822;" attached to
the beginning of the value. For example, "rfc822; John
<JSmith@somesite.com>" where "John <JSmith@somesite.com>"
is the value taken from the From field. If the
header does not exist or contains no value, the header
is still created with an empty value. However, if
there is a value formed for this field, the value is also
copied to the Original-Recipient header of the MDN --
any existing value previously determined is overwritten.
Original-Message-ID. The value of this field
is taken from the Message-ID field of the subject
message.
Disposition. The value of this header depends on how
the MDN request was activated:
If the request was made through the required fields in
the subject message (Disposition-Notification-To, Return-Path, Message-ID),
then the field value is "automatic-action/MDN-sent-automatically;processed".
If the request was made by setting the EnableAcknowledgment
to TRUE then the field value is set to "manual-action/MDN-sent-manually;processed".
Furthermore, if there were errors detected in the subject
message, a modifier is appended to the disposition value:
"Warning" if a warning was generated.
"Error" if a severe error was generated.
The list of warnings or errors are then listed with Warning
and Error headers. For example,
Disposition: automatic-action/MDN-sent-automatically;processed/warning
Warning: [DESCRIPTION:Internet message header 'Date' has invalid syntax value.][CODE:13921]
Warning: [DESCRIPTION:Month value expected. 'Header:'Date''][CODE:13714]
Received-Content-MIC. The MIC calculated is
for the body of the subject message, and the resulting value
is assigned to this header. The subject message must
have the following header and value for this header to be
added to the MDN.
Disposition-Notification-Options. The value of this header must be
"signed-receipt-protocol=optional,pkcs7-signature;
signed-receipt-micalg=optional,sha1".
To prevent MIC calculation and omit this header, disable
the option MailDocOpt_EnableMDN
in the mailDocument
object. The
Disposition-Notification-Options not only calculates the MIC but will
digitally sign the MDN, requiring that a private key be
specified to process the MDN.