Sample code for 30+ languages & platforms
Swift

Add Email Attachment from FTP

Downloads (into memory) a file from an FTP server and adds it as an attachment to an email.

Note: This example requires Chilkat v9.5.0.63 or later.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // Note: This example requires Chilkat v9.5.0.63 or later.

    // This example assumes Chilkat Ftp2 to have been previously unlocked.
    // See Unlock Ftp2 for sample code.

    let ftp = CkoFtp2()!

    ftp.hostname = "www.my-ftp-server.com"
    ftp.username = "mFtpLogin"
    ftp.password = "myFtpPassword"

    // Connect to the FTP server.
    success = ftp.connectOnly()
    if success != true {
        print("\(ftp.lastErrorText!)")
        return
    }

    // Authenticate with the FTP server.
    success = ftp.loginAfterConnectOnly()
    if success != true {
        print("\(ftp.lastErrorText!)")
        return
    }

    // Move to the remove directory where our file is located.
    success = ftp.changeRemoteDir(relativeDirPath: "qa_data")
    if success == true {
        success = ftp.changeRemoteDir(relativeDirPath: "pdf")
    }

    if success != true {
        print("\(ftp.lastErrorText!)")
        return
    }

    // Download...
    let pdfData = CkoBinData()!
    success = ftp.getFileBd(remoteFilePath: "fishing.pdf", binData: pdfData)
    if success != true {
        print("\(ftp.lastErrorText!)")
        return
    }

    ftp.disconnect()

    // Create an email object, and add the PDF as an attachment.
    let email = CkoEmail()!
    email.subject = "Test with PDF attachment."
    email.body = "This is a plain-text body.."

    // Add the PDF attachment.  (This method call requires Chilkat v9.5.0.63 or later)
    success = email.addAttachmentBd(filename: "fishing.pdf", binData: pdfData, contentType: "application/pdf")
    if success != true {
        print("\(email.lastErrorText!)")
        return
    }

    // Save the email and examine with a text editor to see the PDF attachment is present..
    email.saveEml(path: "qa_output/out.eml")

    print("Success.")

}