Sample code for 30+ languages & platforms
Xbase++ Requires Chilkat v11.0.0+

Parsing a Multipart/Digest Email

See more Email Object Examples

This example demonstrates how to parse a multipart/digest email. An email parsed by this sample could have a MIME structure as follows:
multipart/mixed
    text/plain
    text/plain
    multipart/digest
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
        message/rfc822
    text/plain

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL cEmlPath
LOCAL oEmail
LOCAL nNumDigests
LOCAL oEDigest
LOCAL i
LOCAL m

nSuccess := 0

cEmlPath := "qa_data/eml/multipart_digest.eml"

oEmail := CreateObject("Chilkat.Email")

//  For this example, we'll load the email from a .eml.
//  The email could alternatively be loaded as a result of downloading from an IMAP or POP3 server..

nSuccess := oEmail:LoadEml(cEmlPath)
IF (nSuccess == 0)
    ? oEmail:LastErrorText
    oEmail:destroy()
    RETURN
ENDIF

nNumDigests := oEmail:NumDigests
? "num digests = " + Str(nNumDigests)

oEDigest := CreateObject("Chilkat.Email")
i := 0
DO WHILE i < nNumDigests
    oEmail:GetDigestEmail(i, oEDigest)
    ? Str(i) + ":" + oEDigest:FromAddress + ", " + oEDigest:Subject
    m := oEDigest:GetHeaderField("Message")
    IF (oEDigest:LastMethodSuccess == 1)
        ? "    Message = " + m
    ENDIF

    i := i + 1
ENDDO

oEmail:destroy()
oEDigest:destroy()