Xojo Plugin
Xojo Plugin
Fetch Single Email by UID or Sequence Number
Assuming the UID is known, download a single email by UID from an IMAP mail server.Chilkat Xojo Plugin Downloads
Dim success As Boolean
success = False
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Dim imap As New Chilkat.Imap
// Connect to an IMAP server.
// Use TLS
imap.Ssl = True
imap.Port = 993
success = imap.Connect("imap.example.com")
If (success = False) Then
System.DebugLog(imap.LastErrorText)
Return
End If
// Login
success = imap.Login("***","***")
If (success = False) Then
System.DebugLog(imap.LastErrorText)
Return
End If
// Select an IMAP mailbox
success = imap.SelectMailbox("Inbox")
If (success = False) Then
System.DebugLog(imap.LastErrorText)
Return
End If
Dim email As New Chilkat.Email
Dim uid As Int32
uid = 2014
Dim isUid As Boolean
isUid = True
success = imap.FetchEmail(False,uid,isUid,email)
If (success = False) Then
System.DebugLog(imap.LastErrorText)
Return
End If
// Display the From and Subject
System.DebugLog(email.FromAddress)
System.DebugLog(email.Subject)
// Display the Body property, which is the default body.
// If an email has an HTML body, the Body property contains
// the HTML source. Otherwise it contains the plain-text
// body.
System.DebugLog("---- EMAIL BODY ----")
System.DebugLog(email.Body)
System.DebugLog("--------------------")
// Display the recipients:
Dim j As Int32
For j = 0 To email.NumTo - 1
System.DebugLog(email.GetToName(j) + ", " + email.GetToAddr(j))
Next
For j = 0 To email.NumCC - 1
System.DebugLog(email.GetCcName(j) + ", " + email.GetCcAddr(j))
Next
// Show the total size of the email, including body and attachments:
System.DebugLog(Str(email.Size))
// When a full email is downloaded, we would use the
// email.NumAttachments property in conjunction with the
// email.GetMailAttach* methods.
// However, when an email object contains only the header,
// we need to access the attachment info differently:
Dim numAttach As Int32
numAttach = imap.GetMailNumAttach(email)
System.DebugLog(Str(numAttach))
For j = 0 To numAttach - 1
System.DebugLog(imap.GetMailAttachFilename(email,j))
Dim attachSize As Int32
attachSize = imap.GetMailAttachSize(email,j)
System.DebugLog(" size = " + Str(attachSize) + " bytes")
Next
System.DebugLog("--")
// Disconnect from the IMAP server.
success = imap.Disconnect()