PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkImap.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
imap.i = CkImap::ckCreate()
If imap.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Use TLS
CkImap::setCkSsl(imap, 1)
CkImap::setCkPort(imap, 993)
success = CkImap::ckConnect(imap,"MY-IMAP-DOMAIN")
If success <> 1
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
ProcedureReturn
EndIf
; Authenticate
success = CkImap::ckLogin(imap,"MY-IMAP-LOGIN","MY-IMAP-PASSWORD")
If success <> 1
Debug CkImap::ckLastErrorText(imap)
CkImap::ckDispose(imap)
ProcedureReturn
EndIf
; Get the list of capabilities:
caps.s = CkImap::ckCapability(imap)
Debug "Capabilities: " + 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 CkImap::ckHasCapability(imap,"QUOTA",caps) = 1
Debug "IMAP server supports the QUOTA extension."
EndIf
If CkImap::ckHasCapability(imap,"IDLE",caps) = 1
Debug "IMAP server supports IDLE."
EndIf
; Disconnect from the IMAP server.
success = CkImap::ckDisconnect(imap)
CkImap::ckDispose(imap)
ProcedureReturn
EndProcedure