Sample code for 30+ languages & platforms
PowerBuilder

Get a Digest Message as an Email Object

See more Email Object Examples

Demonstrates the Chilkat Email.GetDigestEmail method, which copies the Nth digest email contained within a multipart/digest into another Email object. The first digest is at index 0; the NumDigests property gives the count. This example loads a digest email and lists each bundled message's subject.

Background: A multipart/digest packs many separate emails into one carrier message — historically used by mailing lists to send a single daily bundle of that day's posts. GetDigestEmail unpacks each member into a full Email object so it can be read or processed individually. This differs from GetAttachedEmail, which extracts messages attached to an ordinary email rather than the members of a digest.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Email
integer n
oleobject loo_DigestEmail
integer i

li_Success = 0

//  Demonstrates the GetDigestEmail method, which copies the Nth digest email contained
//  within a multipart/digest into another Email object.  The first digest is at index 0;
//  use the NumDigests property for the count.

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/digest.eml")
if li_Success = 0 then
    Write-Debug loo_Email.LastErrorText
    destroy loo_Email
    return
end if

n = loo_Email.NumDigests
Write-Debug "NumDigests = " + string(n)

//  Retrieve each bundled message as its own Email object.
loo_DigestEmail = create oleobject
li_rc = loo_DigestEmail.ConnectToNewObject("Chilkat.Email")

for i = 0 to n - 1
    li_Success = loo_Email.GetDigestEmail(i,loo_DigestEmail)
    Write-Debug "Digest " + string(i) + " subject: " + loo_DigestEmail.Subject
next

//  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_DigestEmail