Sample code for 30+ languages & platforms
Xojo Plugin

Fetch Only an IMAP Message's Headers

See more IMAP Examples

Demonstrates the Chilkat Imap.FetchSingleHeaderAsMime method, which downloads and returns the MIME header block for one message, without downloading the body. If the second argument (bUID) is true, the first argument is a UID; otherwise it is a sequence number. This example fetches message 1's headers.

Background: Headers are tiny compared to a full message with attachments, so fetching just the header block is the fast, bandwidth-friendly way to build a message list — sender, subject, date — without pulling every body. It is also gentler on read state: retrieving only headers does not mark a message as seen. Download the full message later, on demand, when the user opens it.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

//  Demonstrates the Imap.FetchSingleHeaderAsMime method, which downloads and returns the MIME
//  header block for one message, without downloading the body.  If the 2nd argument (bUID)
//  is 1, the 1st argument is a UID; otherwise it is a sequence number.

Dim imap As New Chilkat.Imap

imap.Ssl = True
imap.Port = 993

success = imap.Connect("imap.example.com")
If (success = False) Then
    System.DebugLog(imap.LastErrorText)
    Return
End If

success = imap.Login("user@example.com","myPassword")
If (success = False) Then
    System.DebugLog(imap.LastErrorText)
    Return
End If

success = imap.SelectMailbox("Inbox")
If (success = False) Then
    System.DebugLog(imap.LastErrorText)
    Return
End If

//  Download only the MIME header block of message sequence number 1.  bUID = 0.
Dim headers As String
headers = imap.FetchSingleHeaderAsMime(1,False)
If (imap.LastMethodSuccess = False) Then
    System.DebugLog(imap.LastErrorText)
    Return
End If

System.DebugLog(headers)

success = imap.Disconnect()
If (success = False) Then
    System.DebugLog(imap.LastErrorText)
    Return
End If