Sample code for 30+ languages & platforms
Visual Basic 6.0

How to Download Messages in MessageSet One at a Time

See more IMAP Examples

If a message set contains a huge number of emails, it's NOT a good idea to try to download all at once into an email bundle using a method such as FetchBundle. It's better to iterate over the messages in the set to download one by one.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim imap As New ChilkatImap

' Connect using TLS.
imap.Ssl = 1
imap.Port = 993
success = imap.Connect("imap.example.com")
If (success = 0) Then
    Debug.Print imap.LastErrorText
    Exit Sub
End If

' Authenticate
success = imap.Login("email_account_login","email_account_password")
If (success = 0) Then
    Debug.Print imap.LastErrorText
    Exit Sub
End If

' Select an IMAP mailbox
success = imap.SelectMailbox("Inbox")
If (success = 0) Then
    Debug.Print imap.LastErrorText
    Exit Sub
End If

' Search for messages and return a set of matching messages.
' (This example will simply search for ALL messages.)
Dim fetchUids As Long
fetchUids = 1

Dim messageSet As New MessageSet
success = imap.QueryMbx("ALL",fetchUids,messageSet)
If (success = 0) Then
    Debug.Print imap.LastErrorText
    Exit Sub
End If

Debug.Print "Number of messages = " & messageSet.Count

Dim email As New ChilkatEmail
Dim i As Long
i = 0
Do While i < messageSet.Count
    success = imap.FetchEmail(0,messageSet.GetId(i),fetchUids,email)
    If (success = 0) Then
        Debug.Print imap.LastErrorText
        Exit Sub
    End If

    Debug.Print email.From & "; " & email.Subject

    i = i + 1
Loop

Debug.Print "OK"