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