Sample code for 30+ languages & platforms
Unicode C

Enumerate the Header Fields of an Email

See more Email Object Examples

Demonstrates the read-only Chilkat Email.NumHeaderFields property together with GetHeaderFieldName and GetHeaderFieldValue to enumerate every header field. Indexing is zero-based, so fields run from 0 to NumHeaderFields - 1. Repeated header fields (a field name that appears more than once) are counted separately. This example builds a small email and prints each header field.

Background: A header field is a single Name: value line at the top of a MIME message. The same field name can legitimately appear multiple times — for example, a message can carry several Received lines, one added by each mail server it passed through. That is why enumerating by index (rather than looking up by name) matters: it lets you see every occurrence in the order it appears.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkEmailW.h>

void ChilkatSample(void)
    {
    HCkEmailW email;
    int n;
    int i;

    //  Demonstrates the read-only Email.NumHeaderFields property and enumerating each
    //  header field by zero-based index using GetHeaderFieldName and GetHeaderFieldValue.

    email = CkEmailW_Create();
    CkEmailW_putSubject(email,L"Header field enumeration");
    CkEmailW_putFrom(email,L"mary@example.com");
    CkEmailW_AddTo(email,L"Joe",L"joe@example.com");

    n = CkEmailW_getNumHeaderFields(email);
    wprintf(L"NumHeaderFields = %d\n",n);

    for (i = 0; i <= n - 1; i++) {
        wprintf(L"%s: %s\n",CkEmailW_getHeaderFieldName(email,i),CkEmailW_getHeaderFieldValue(email,i));
    }



    CkEmailW_Dispose(email);

    }