Sample code for 30+ languages & platforms
PureBasic

IMAP LastResponse and LastResponseCode

Demonstrates the IMAP LastResponse and LastResponseCode properties.

Chilkat PureBasic Downloads

PureBasic
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,"imap.gmail.com")
    If success <> 1
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        ProcedureReturn
    EndIf

    ; Authenticate, but with an intentionally incorrect password
    ; so we can see the contents of the LastErrorText, and also
    ; the LastResponse and LastResponseCode properties.
    success = CkImap::ckLogin(imap,"my_login","my_intentionally incorrect_password")
    If success = 1
        Debug "Successfull login, but this example is meant to demonstrate an error, such as a failed login."
        CkImap::ckDispose(imap)
        ProcedureReturn
    EndIf

    ; Let's look at the LastErrorText, and also the LastResponse and LastResponseCode.
    Debug "LastResponseCode = " + CkImap::ckLastResponseCode(imap)
    Debug "LastReponse = " + CkImap::ckLastResponse(imap)
    Debug "LastErrorText = " + CkImap::ckLastErrorText(imap)

    ; Sample output:

    ; LastResponseCode = AUTHENTICATIONFAILED
    ; LastReponse = aaab NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
    ; LastErrorText = ChilkatLog:
    ;   Login:
    ;     DllDate: Oct 28 2023
    ;     ChilkatVersion: 9.5.0.96
    ;     UnlockPrefix: EXCODE
    ;     UnlockStatus: 2
    ;     Architecture: Little Endian; 64-bit
    ;     Language: .NET 4.5 / x64 / VS2012
    ;     VerboseLogging: 0
    ;     imapServer: imap.gmail.com
    ;     loginX(47ms):
    ;       login: my_login
    ;       greeting: * OK Gimap ready for requests from 98.213.102.119 w5mb285327441qtc
    ; 
    ;       authenticateLogin(47ms):
    ;         loginImap(47ms):
    ;           ConnectionType: SSL/TLS
    ;           ImapCmdSent: aaab LOGIN "my_login"
    ;           getCompleteResponse(47ms):
    ;             ImapCmdResp: aaab NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
    ;           --getCompleteResponse
    ;         --loginImap
    ;         isOK:
    ;           serverResponse: aaab NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
    ;         --isOK
    ;       --authenticateLogin
    ;     --loginX
    ;     Failed.
    ;   --Login
    ; --ChilkatLog

    ; Disconnect from the IMAP server.
    success = CkImap::ckDisconnect(imap)


    CkImap::ckDispose(imap)


    ProcedureReturn
EndProcedure