Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    Boolean iSuccess
    Integer n
    Integer i
    String sTemp1
    String sTemp2

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

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "Header field enumeration"
    Set ComFrom Of hoEmail To "mary@example.com"
    Get ComAddTo Of hoEmail "Joe" "joe@example.com" To iSuccess

    Get ComNumHeaderFields Of hoEmail To n
    Showln "NumHeaderFields = " n

    For i From 0 To (n - 1)
        Get ComGetHeaderFieldName Of hoEmail i To sTemp1
        Get ComGetHeaderFieldValue Of hoEmail i To sTemp2
        Showln sTemp1 ": " sTemp2
    Loop



End_Procedure