public static org.apache.james.util.mail.MimeMultipartReport | create(java.lang.String humanText, java.lang.String reporting_UA_name, java.lang.String reporting_UA_product, java.lang.String original_recipient, java.lang.String final_recipient, java.lang.String original_message_id, Disposition disposition)Answers a MimeMultipartReport containing a
Message Delivery Notification as specified by RFC 2298.
// Create the message parts. According to RFC 2298, there are two
// compulsory parts and one optional part...
MimeMultipartReport multiPart = new MimeMultipartReport();
multiPart.setReportType("disposition-notification");
// Part 1: The 'human-readable' part
MimeBodyPart humanPart = new MimeBodyPart();
humanPart.setText(humanText);
multiPart.addBodyPart(humanPart);
// Part 2: MDN Report Part
// 1) reporting-ua-field
StringBuffer mdnReport = new StringBuffer(128);
mdnReport.append("Reporting-UA: ");
mdnReport.append((reporting_UA_name == null ? "" : reporting_UA_name));
mdnReport.append("; ");
mdnReport.append((reporting_UA_product == null ? "" : reporting_UA_product));
mdnReport.append("\r\n");
// 2) original-recipient-field
if (null != original_recipient)
{
mdnReport.append("Original-Recipient: ");
mdnReport.append("rfc822; ");
mdnReport.append(original_recipient);
mdnReport.append("\r\n");
}
// 3) final-recipient-field
mdnReport.append("Final-Recepient: ");
mdnReport.append("rfc822; ");
mdnReport.append((final_recipient == null ? "" : final_recipient));
mdnReport.append("\r\n");
// 4) original-message-id-field
mdnReport.append("Original-Message-ID: ");
mdnReport.append((original_message_id == null ? "" : original_message_id));
mdnReport.append("\r\n");
// 5) disposition-field
mdnReport.append(disposition.toString());
mdnReport.append("\r\n");
MimeBodyPart mdnPart = new MimeBodyPart();
mdnPart.setContent(mdnReport.toString(), "message/disposition-notification");
multiPart.addBodyPart(mdnPart);
// Part 3: The optional third part, the original message is omitted.
// We don't want to propogate over-sized, virus infected or
// other undesirable mail!
// There is the option of adding a Text/RFC822-Headers part, which
// includes only the RFC 822 headers of the failed message. This is
// described in RFC 1892. It would be a useful addition!
return multiPart;
|