Sample code for 30+ languages & platforms
DataFlex

Set the Email Date Header to the Current System Date/Time

Demonstrates how to set the Date header field of an email to the computer's current date/time. Note: When an email object is instantiated, the Date header field is automatically added and initialized to the current system date/time. The need to explicitly set the Date header could arise when loading an email from a .eml.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoEmail
    Variant vDateTime
    Handle hoDateTime
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    // At this point, a new email object has been instantiated, and it
    // already has a Date header field containing the current date/time.
    Get ComEmailDateStr Of hoEmail To sTemp1
    Showln "Date: " sTemp1

    // We can also get the Date header like this:
    Get ComGetHeaderField Of hoEmail "Date" To sTemp1
    Showln "Date: " sTemp1

    // Load a .eml into the email object:
    Get ComLoadEml Of hoEmail "myEmlFiles/someEmail.eml" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Show the Date that was in the .eml
    Get ComEmailDateStr Of hoEmail To sTemp1
    Showln "Date: " sTemp1

    // Now the Date header contains whatever was in the .eml
    // Let's update it to the current system date/time..

    Get Create (RefClass(cComCkDateTime)) To hoDateTime
    If (Not(IsComObjectCreated(hoDateTime))) Begin
        Send CreateComObject of hoDateTime
    End

    Get ComSetFromCurrentSystemTime Of hoDateTime To iSuccess

    Get pvComObject of hoDateTime to vDateTime
    Get ComSetDt Of hoEmail vDateTime To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Now show that the Date is the current system time:
    Get ComEmailDateStr Of hoEmail To sTemp1
    Showln "Date: " sTemp1
    Get ComGetHeaderField Of hoEmail "Date" To sTemp1
    Showln "Date: " sTemp1


End_Procedure