Sample code for 30+ languages & platforms
Swift

Zip an Email's Attachments into One File

See more Email Object Examples

Demonstrates the Chilkat Email.ZipAttachments method, which replaces all of an email's attachments with a single Zip file attachment having the specified filename. The original attachments are removed and packed into the Zip. This example adds two attachments and zips them into one.

Background: Bundling multiple attachments into a single .zip keeps a message tidy, compresses the payload, and works around recipients or gateways that limit the number of attachments. Note that the filename here (files.zip) names the attachment inside the message — it is not a path on disk. The reverse operation is UnzipAttachments.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    //  Demonstrates the ZipAttachments method, which replaces all of an email's attachments
    //  with a single Zip file attachment having the specified filename.  The original
    //  attachments are removed and packed into the Zip.

    let email = CkoEmail()!
    email.subject = "Zip the attachments"

    email.addStringAttachment(fileName: "a.txt", str: "first attachment")
    email.addStringAttachment(fileName: "b.txt", str: "second attachment")
    print("NumAttachments before = \(email.numAttachments.intValue)")

    //  Replace all attachments with a single Zip attachment named "files.zip".
    success = email.zipAttachments(zipFilename: "files.zip")
    if success == false {
        print("\(email.lastErrorText!)")
        return
    }

    print("NumAttachments after = \(email.numAttachments.intValue)")

}