Sample code for 30+ languages & platforms
Swift

Example: Email.GetDsnInfo method

See more Email Object Examples

Demonstrates how to call the GetDsnInfo method.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let email = CkoEmail()!

    success = email.loadEml(mimePath: "qa_data/eml/sample_multipart_report.eml")
    if success == false {
        print("\(email.lastErrorText!)")
        return
    }

    let json = CkoJsonObject()!
    success = email.getDsnInfo(json: json)
    if success == false {
        print("\(email.lastErrorText!)")
        return
    }

    json.emitCompact = false
    print("\(json.emit()!)")

    // 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:

    var strVal: String?

    var reporting_mta: String? = json.string(of: "reporting-mta")
    var action: String? = json.string(of: "action")
    var status: String? = json.string(of: "status")
    var remote_mta: String? = json.string(of: "remote-mta")
    var x_supplementary_info: String? = json.string(of: "x-supplementary-info")
    var x_display_name: String? = json.string(of: "x-display-name")
    var i: Int = 0
    var count: Int = json.size(ofArray: "final-recipient").intValue
    while i < count {
        json.i = i
        strVal = json.string(of: "final-recipient[i]")
        i = i + 1
    }


}