PowerBuilder
PowerBuilder
Create a Message Disposition Notification (MDN)
See more Email Object Examples
Demonstrates the Chilkat Email.ToMdn method, which creates a new MDN (Message Disposition Notification) email in the format specified by RFC 3798, based on this email. The generated MDN is returned in the last argument, and the source email is not modified. The first argument is the human-readable message, the second is the disposition fields, and the third indicates whether to include headers only. This example builds an MDN for a received message.
Background: An MDN is the formal "read receipt" — the response returned (with the user's consent) when a message requesting a receipt is opened. Like a DSN it is a
multipart/report, but it carries a message/disposition-notification part describing what happened to the message (for example, displayed). ToMdn generates that report, which pairs with the ReturnReceipt property that requests one.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Email
oleobject loo_Mdn
li_Success = 0
// Demonstrates the ToMdn method, which creates a new MDN (Message Disposition Notification)
// email (RFC 3798) based on this email. The generated MDN is returned in the last argument.
// The source email is not modified.
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")
if li_rc < 0 then
destroy loo_Email
MessageBox("Error","Connecting to COM object failed")
return
end if
li_Success = loo_Email.LoadEml("qa_data/eml/received.eml")
if li_Success = 0 then
Write-Debug loo_Email.LastErrorText
destroy loo_Email
return
end if
// Create an MDN (read receipt) for the received message. The 1st argument is the
// human-readable message, the 2nd is the disposition fields, and the 3rd (headerOnly) is false.
loo_Mdn = create oleobject
li_rc = loo_Mdn.ConnectToNewObject("Chilkat.Email")
li_Success = loo_Email.ToMdn("Your message has been displayed.","Disposition: manual-action/MDN-sent-manually; displayed",0,loo_Mdn)
if li_Success = 0 then
Write-Debug loo_Email.LastErrorText
destroy loo_Email
destroy loo_Mdn
return
end if
// Populate additional sender/recipient fields on the MDN before sending, then send it.
Write-Debug loo_Mdn.GetMime()
// Note: The path "qa_data/..." is a relative local filesystem path,
// relative to the current working directory of the running application.
destroy loo_Email
destroy loo_Mdn