Sample code for 30+ languages & platforms
Objective-C

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 Objective-C Downloads

Objective-C
#import <CkoEmail.h>

BOOL success = NO;

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

CkoEmail *email = [[CkoEmail alloc] init];
email.Subject = @"Zip the attachments";

[email AddStringAttachment: @"a.txt" str: @"first attachment"];
[email AddStringAttachment: @"b.txt" str: @"second attachment"];
NSLog(@"%@%d",@"NumAttachments before = ",[email.NumAttachments intValue]);

//  Replace all attachments with a single Zip attachment named "files.zip".
success = [email ZipAttachments: @"files.zip"];
if (success == NO) {
    NSLog(@"%@",email.LastErrorText);
    return true;
}

NSLog(@"%@%d",@"NumAttachments after = ",[email.NumAttachments intValue]);