Sample code for 30+ languages & platforms
DataFlex

Get the Email Received Date/Time

See more Email Object Examples

Get's the date/time from the topmost Received header. The date/time of when you received an email may be different than the date/time stored in the Date header field, which if truthful, is the date when the email was sent.

The Received header field will look something like this:

Received: from mail.example.com (mail.example.com [99.255.255.99])
 by inbound-smtp.us-west-2.amazonaws.com with SMTP id 72ma443vs1g0o6vqd8erojkpss35s0dt32h323o1
 for admin@chilkatsoft.com;
 Wed, 25 Jul 2018 08:04:23 +0000 (UTC)
The date/time is the final part delimited by a semicolon.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoEmail
    Variant vSb
    Handle hoSb
    Integer iNumReplaced
    Handle hoSt
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

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

    Get ComLoadEml Of hoEmail "qa_data/eml/p.eml" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
    If (Not(IsComObjectCreated(hoSb))) Begin
        Send CreateComObject of hoSb
    End
    Get ComGetHeaderField Of hoEmail "Received" To sTemp1
    Get ComAppend Of hoSb sTemp1 To iSuccess

    // Replace semicolons with CRLF's
    Get ComReplace Of hoSb ";" (character(13)) + (character(10)) To iNumReplaced

    Get Create (RefClass(cComChilkatStringTable)) To hoSt
    If (Not(IsComObjectCreated(hoSt))) Begin
        Send CreateComObject of hoSt
    End
    Get pvComObject of hoSb to vSb
    Get ComAppendFromSb Of hoSt vSb To iSuccess

    Get ComCount Of hoSt To iTemp1
    If (iTemp1 = 0) Begin
        Showln "Should have at least one line.."
        Procedure_Return
    End

    // The date/time string is the last line in the string table.
    Get ComStringAt Of hoSt ((ComCount(hoSt)) - 1) To sTemp1
    Get ComSetString Of hoSb sTemp1 To iSuccess
    Get ComTrim Of hoSb To iSuccess

    Get ComGetAsString Of hoSb To sTemp1
    Showln "Received date/time = " sTemp1


End_Procedure