Sample code for 30+ languages & platforms
PureBasic

SMTP Send Raw Command

Demonstrates how to send a raw command to the SMTP server after the connecting and authenticating.

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!"

    ; Send the "EHLO" command again to get the multi-line response that includes the SMTP capabilities.
    ; The capabilities are the lines in the response that begin with "250-".
    responseStr.s = CkMailMan::ckSmtpSendRawCommand(mailman,"EHLO client.example.com","utf-8",0)
    If CkMailMan::ckLastMethodSuccess(mailman) = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        ProcedureReturn
    EndIf

    Debug responseStr

    ; A sample response:

    ; 250-smtp.us-west-2.mail.awsapps.com
    ; 250-8BITMIME
    ; 250-AUTH PLAIN LOGIN
    ; 250 Ok


    CkMailMan::ckDispose(mailman)


    ProcedureReturn
EndProcedure