Sample code for 30+ languages & platforms
C

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 C Downloads

C
#include <C_CkEmail.h>

void ChilkatSample(void)
    {
    BOOL success;
    const char *emlPath;
    HCkEmail email;
    int numDigests;
    HCkEmail eDigest;
    int i;
    const char *m;

    success = FALSE;

    emlPath = "qa_data/eml/multipart_digest.eml";

    email = CkEmail_Create();

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

    success = CkEmail_LoadEml(email,emlPath);
    if (success == FALSE) {
        printf("%s\n",CkEmail_lastErrorText(email));
        CkEmail_Dispose(email);
        return;
    }

    numDigests = CkEmail_getNumDigests(email);
    printf("num digests = %d\n",numDigests);

    eDigest = CkEmail_Create();
    i = 0;
    while (i < numDigests) {
        CkEmail_GetDigestEmail(email,i,eDigest);
        printf("%d:%s, %s\n",i,CkEmail_fromAddress(eDigest),CkEmail_subject(eDigest));
        m = CkEmail_getHeaderField(eDigest,"Message");
        if (CkEmail_getLastMethodSuccess(eDigest) == TRUE) {
            printf("    Message = %s\n",m);
        }

        i = i + 1;
    }



    CkEmail_Dispose(email);
    CkEmail_Dispose(eDigest);

    }