DataFlex
DataFlex
Fetch Oldest/Newest IMAP Email
Emails may be downloaded by sequence number. Assuming the selected mailbox is not empty, the oldest email is at sequence number 1, and the newest email is at sequence number N. The FetchSingle method may be used to download by sequence number.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoImap
Integer n
Boolean iIsUid
Variant vOldestEmail
Handle hoOldestEmail
Variant vNewestEmail
Handle hoNewestEmail
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatImap)) To hoImap
If (Not(IsComObjectCreated(hoImap))) Begin
Send CreateComObject of hoImap
End
// Connect to an IMAP server.
// Use TLS
Set ComSsl Of hoImap To True
Set ComPort Of hoImap To 993
Get ComConnect Of hoImap "mail.testemail.net" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoImap To sTemp1
Showln sTemp1
Procedure_Return
End
// Login
Get ComLogin Of hoImap "***" "***" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoImap To sTemp1
Showln sTemp1
Procedure_Return
End
// Select an IMAP mailbox
Get ComSelectMailbox Of hoImap "Inbox" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoImap To sTemp1
Showln sTemp1
Procedure_Return
End
// After selecting a mailbox, the NumMessages property
// contains the number of emails in the selected mailbox.
Get ComNumMessages Of hoImap To n
If (n > 0) Begin
// The oldest email is always at sequence number 1.
Move False To iIsUid
Get Create (RefClass(cComChilkatEmail)) To hoOldestEmail
If (Not(IsComObjectCreated(hoOldestEmail))) Begin
Send CreateComObject of hoOldestEmail
End
Get pvComObject of hoOldestEmail to vOldestEmail
Get ComFetchEmail Of hoImap False 1 iIsUid vOldestEmail To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoImap To sTemp1
Showln sTemp1
Procedure_Return
End
// Display the From and Subject
Get ComFromAddress Of hoOldestEmail To sTemp1
Showln sTemp1
Get ComSubject Of hoOldestEmail To sTemp1
Showln sTemp1
Showln "--"
// The newest email is at sequence number N:
Get Create (RefClass(cComChilkatEmail)) To hoNewestEmail
If (Not(IsComObjectCreated(hoNewestEmail))) Begin
Send CreateComObject of hoNewestEmail
End
Get pvComObject of hoNewestEmail to vNewestEmail
Get ComFetchEmail Of hoImap False n iIsUid vNewestEmail To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoImap To sTemp1
Showln sTemp1
Procedure_Return
End
// Display the From and Subject
Get ComFromAddress Of hoNewestEmail To sTemp1
Showln sTemp1
Get ComSubject Of hoNewestEmail To sTemp1
Showln sTemp1
End
// Disconnect from the IMAP server.
Get ComDisconnect Of hoImap To iSuccess
End_Procedure