Sample code for 30+ languages & platforms
PureBasic

Example: Email.GetDsnInfo method

See more Email Object Examples

Demonstrates how to call the GetDsnInfo method.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkEmail.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

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

    success = CkEmail::ckLoadEml(email,"qa_data/eml/sample_multipart_report.eml")
    If success = 0
        Debug CkEmail::ckLastErrorText(email)
        CkEmail::ckDispose(email)
        ProcedureReturn
    EndIf

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

    success = CkEmail::ckGetDsnInfo(email,json)
    If success = 0
        Debug CkEmail::ckLastErrorText(email)
        CkEmail::ckDispose(email)
        CkJsonObject::ckDispose(json)
        ProcedureReturn
    EndIf

    CkJsonObject::setCkEmitCompact(json, 0)
    Debug CkJsonObject::ckEmit(json)

    ; Sample output:

    ; {
    ;   "reporting-mta": "dns; Exchange2016.example.com",
    ;   "final-recipient": [
    ;     "herb.butterworth1247692846@gmail.com"
    ;   ],
    ;   "action": "failed",
    ;   "status": "5.1.1",
    ;   "remote-mta": "dns; mx.google.com",
    ;   "x-supplementary-info": "<mx.google.com #5.1.1 smtp;550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1  https://support.google.com/mail/?p=NoSuchUser o8-20020a056870968800b001b55816bea9si2188132oaq.70 - gsmtp>",
    ;   "x-display-name": "herb.butterworth1247692846@gmail.com"
    ; }

    ; Code for parsing the JSON:

    strVal.s

    reporting_mta.s = CkJsonObject::ckStringOf(json,"reporting-mta")
    action.s = CkJsonObject::ckStringOf(json,"action")
    status.s = CkJsonObject::ckStringOf(json,"status")
    remote_mta.s = CkJsonObject::ckStringOf(json,"remote-mta")
    x_supplementary_info.s = CkJsonObject::ckStringOf(json,"x-supplementary-info")
    x_display_name.s = CkJsonObject::ckStringOf(json,"x-display-name")
    i.i = 0
    count.i = CkJsonObject::ckSizeOfArray(json,"final-recipient")
    While i < count
        CkJsonObject::setCkI(json, i)
        strVal = CkJsonObject::ckStringOf(json,"final-recipient[i]")
        i = i + 1
    Wend


    CkEmail::ckDispose(email)
    CkJsonObject::ckDispose(json)


    ProcedureReturn
EndProcedure