Sample code for 30+ languages & platforms
PowerBuilder

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

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Email
oleobject loo_Sb
integer li_NumReplaced
oleobject loo_St

li_Success = 0

loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")
if li_rc < 0 then
    destroy loo_Email
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_Email.LoadEml("qa_data/eml/p.eml")
if li_Success <> 1 then
    Write-Debug loo_Email.LastErrorText
    destroy loo_Email
    return
end if

loo_Sb = create oleobject
li_rc = loo_Sb.ConnectToNewObject("Chilkat.StringBuilder")

loo_Sb.Append(loo_Email.GetHeaderField("Received"))

// Replace semicolons with CRLF's
li_NumReplaced = loo_Sb.Replace(";","~r~n")

loo_St = create oleobject
li_rc = loo_St.ConnectToNewObject("Chilkat.StringTable")

loo_St.AppendFromSb(loo_Sb)

if loo_St.Count = 0 then
    Write-Debug "Should have at least one line.."
    destroy loo_Email
    destroy loo_Sb
    destroy loo_St
    return
end if

// The date/time string is the last line in the string table.
loo_Sb.SetString(loo_St.StringAt(loo_St.Count - 1))
loo_Sb.Trim()

Write-Debug "Received date/time = " + loo_Sb.GetAsString()


destroy loo_Email
destroy loo_Sb
destroy loo_St