C
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 C Downloads
#include <C_CkEmail.h>
void ChilkatSample(void)
{
HCkEmail 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 = CkEmail_Create();
CkEmail_putSubject(email,"Header field enumeration");
CkEmail_putFrom(email,"mary@example.com");
CkEmail_AddTo(email,"Joe","joe@example.com");
n = CkEmail_getNumHeaderFields(email);
printf("NumHeaderFields = %d\n",n);
for (i = 0; i <= n - 1; i++) {
printf("%s: %s\n",CkEmail_getHeaderFieldName(email,i),CkEmail_getHeaderFieldValue(email,i));
}
CkEmail_Dispose(email);
}