Sample code for 30+ languages & platforms
PureBasic

SMTP Connect and Authenticate

Demonstrates how to connect and then authenticate with an SMTP server.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkMailMan.pb"

Procedure ChilkatExample()

    success.i = 0

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

    mailman.i = CkMailMan::ckCreate()
    If mailman.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkMailMan::setCkSmtpHost(mailman, "smtp.mail.us-west-2.awsapps.com")
    CkMailMan::setCkSmtpSsl(mailman, 1)
    CkMailMan::setCkSmtpPort(mailman, 465)

    success = CkMailMan::ckSmtpConnect(mailman)
    If success = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        ProcedureReturn
    EndIf

    CkMailMan::setCkSmtpUsername(mailman, "john@example.com")
    CkMailMan::setCkSmtpPassword(mailman, "the_password")

    success = CkMailMan::ckSmtpAuthenticate(mailman)
    If success = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        ProcedureReturn
    EndIf

    Debug "Authenticated!"

    Debug CkMailMan::ckSmtpSessionLog(mailman)

    ; Sample session log:

    ; 220 smtp.us-west-2.mail.awsapps.com ESMTP Amazon WorkMail SMTP Service
    ; EHLO SLICE<CRLF>
    ; 250-smtp.us-west-2.mail.awsapps.com
    ; 250-8BITMIME
    ; 250-AUTH PLAIN LOGIN
    ; 250 Ok
    ; AUTH LOGIN<CRLF>
    ; 334 VXNlcm5hbWU6
    ; am9obkBleGFtcGxlLmNvbQ==<CRLF>
    ; 334 UGFzc3dvcmQ6
    ; {PasswordOrCredentials}
    ; 235 Authentication successful.


    CkMailMan::ckDispose(mailman)


    ProcedureReturn
EndProcedure