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
long 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