DataFlex
DataFlex
IMAP Download All Email One at a Time
Demonstrates how to download every email in an IMAP mailbox one at a time as a MIME string or as an email object. (The MIME contains the full contents of the email including all attachments.)Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoImap
Boolean iBUid
String sMimeStr
Integer i
Integer n
Variant vEmail
Handle hoEmail
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatImap)) To hoImap
If (Not(IsComObjectCreated(hoImap))) Begin
Send CreateComObject of hoImap
End
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Connect to an IMAP server.
// Use TLS
Set ComSsl Of hoImap To True
Set ComPort Of hoImap To 993
Get ComConnect Of hoImap "imap.example.com" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoImap To sTemp1
Showln sTemp1
Procedure_Return
End
// Login
Get ComLogin Of hoImap "myLogin" "myPassword" 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
// Once the mailbox is selected, the NumMessages property
// will contain the number of messages in the mailbox.
// You may loop from 1 to NumMessages to
// fetch each message by sequence number.
Move False To iBUid
Get ComNumMessages Of hoImap To n
For i From 1 To n
// Download the email by sequence number.
Get ComFetchSingleAsMime Of hoImap i iBUid To sMimeStr
// ... your application may process each MIME string...
Loop
// An alternative is to download each email in the form of an
// email object, like this:
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
For i From 1 To n
// Download the email by sequence number.
Get pvComObject of hoEmail to vEmail
Get ComFetchEmail Of hoImap False i iBUid vEmail To iSuccess
// ... your application may process the email object...
Loop
// Disconnect from the IMAP server.
Get ComDisconnect Of hoImap To iSuccess
End_Procedure