Sample code for 30+ languages & platforms
Unicode C

Count the Attached Messages in an Email

See more Email Object Examples

Demonstrates the read-only Chilkat Email.NumAttachedMessages property, which is the number of embedded emails represented by message/rfc822 MIME parts. These are counted separately from ordinary attachments and related items, and their indexes are zero-based. This example builds an inner email, attaches it to an outer email as a nested message, and prints the count.

Background: When you "forward as attachment," many mail clients embed the original message as a complete nested email rather than quoting its text. In MIME this appears as a message/rfc822 part — an entire email (its own headers and body) tucked inside the carrier message. Chilkat distinguishes three kinds of enclosed content: ordinary attachments (NumAttachments), inline related items (NumRelatedItems), and these nested messages (NumAttachedMessages). Use GetAttachedEmail to pull an embedded message into its own Email object.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkEmailW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkEmailW innerEmail;
    HCkEmailW email;

    success = FALSE;

    //  Demonstrates the read-only Email.NumAttachedMessages property, which is the
    //  number of embedded emails (message/rfc822 MIME parts) contained in the email.

    //  Create an inner email that we'll attach as a complete nested message.
    innerEmail = CkEmailW_Create();
    CkEmailW_putSubject(innerEmail,L"I am an attached message");
    CkEmailW_putBody(innerEmail,L"This entire email is nested inside another email.");
    CkEmailW_putFrom(innerEmail,L"alice@example.com");
    CkEmailW_AddTo(innerEmail,L"Bob",L"bob@example.com");

    //  Create the outer email and attach the inner email directly as a
    //  message/rfc822 part.  AttachEmail attaches a copy of the inner email.
    email = CkEmailW_Create();
    CkEmailW_putSubject(email,L"Outer email with an attached message");
    CkEmailW_putBody(email,L"See the attached email.");
    success = CkEmailW_AttachEmail(email,innerEmail);

    wprintf(L"NumAttachedMessages = %d\n",CkEmailW_getNumAttachedMessages(email));



    CkEmailW_Dispose(innerEmail);
    CkEmailW_Dispose(email);

    }