Sample code for 30+ languages & platforms
PowerBuilder

IMAP Capability

Demonstrates how to send the CAPABILITY command to request a listing of capabilities that the IMAP server supports. A capability name which begins with "AUTH=" indicates that the server supports that particular authentication mechanism.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Imap
string ls_Caps

li_Success = 0

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

loo_Imap = create oleobject
li_rc = loo_Imap.ConnectToNewObject("Chilkat.Imap")
if li_rc < 0 then
    destroy loo_Imap
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Use TLS
loo_Imap.Ssl = 1
loo_Imap.Port = 993
li_Success = loo_Imap.Connect("MY-IMAP-DOMAIN")
if li_Success <> 1 then
    Write-Debug loo_Imap.LastErrorText
    destroy loo_Imap
    return
end if

// Authenticate
li_Success = loo_Imap.Login("MY-IMAP-LOGIN","MY-IMAP-PASSWORD")
if li_Success <> 1 then
    Write-Debug loo_Imap.LastErrorText
    destroy loo_Imap
    return
end if

// Get the list of capabilities:
ls_Caps = loo_Imap.Capability()
Write-Debug "Capabilities: " + ls_Caps

// Here is an example of the string returned:
// * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 
// UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT APPENDLIMIT=35882577
// LIST-EXTENDED LIST-STATUS

// Chilkat v9.5.0.58 introduces the HasCapability method to
// check to see if a particular capability exists:
if loo_Imap.HasCapability("QUOTA",ls_Caps) = 1 then
    Write-Debug "IMAP server supports the QUOTA extension."
end if

if loo_Imap.HasCapability("IDLE",ls_Caps) = 1 then
    Write-Debug "IMAP server supports IDLE."
end if

// Disconnect from the IMAP server.
li_Success = loo_Imap.Disconnect()


destroy loo_Imap