Sample code for 30+ languages & platforms
Unicode C++

Get an Attached Message as an Email Object

See more Email Object Examples

Demonstrates the Chilkat Email.GetAttachedEmail method, which copies the Nth embedded message/rfc822 MIME part into another Email object. The index is zero-based (valid values run from 0 through NumAttachedMessages - 1). This example attaches an email and then extracts it back into its own object.

Background: When a message forwards another email as an attachment, that nested message is a complete email in its own right. GetAttachedEmail turns it back into a fully navigable Email object so you can read its subject, sender, body, and even its own attachments — essential for processing forwarded mail, or for tools that unpack reported spam/phishing to examine the original.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkEmailW.h>

void ChilkatSample(void)
    {
    bool success = false;

    //  Demonstrates the GetAttachedEmail method, which copies the Nth embedded message/rfc822
    //  MIME part into another Email object.  The index is zero-based.

    //  Build an inner email and attach it to an outer email.
    CkEmailW innerEmail;
    innerEmail.put_Subject(L"Embedded message");
    innerEmail.put_From(L"alice@example.com");
    innerEmail.put_Body(L"This is the embedded message.");

    CkEmailW email;
    email.put_Subject(L"Has an attached message");
    success = email.AttachEmail(innerEmail);
    if (success == false) {
        wprintf(L"%s\n",email.lastErrorText());
        return;
    }

    //  Copy the first embedded message (index 0) into its own Email object.
    CkEmailW attached;
    success = email.GetAttachedEmail(0,attached);
    if (success == false) {
        wprintf(L"%s\n",email.lastErrorText());
        return;
    }

    wprintf(L"Attached email subject: %s\n",attached.subject());
    wprintf(L"Attached email from: %s\n",attached.ck_from());
    }