Sample code for 30+ languages & platforms
Objective-C

Create Email with Non-Standard Binary Body

Creates an email where the only body is a binary WAV file. The technique used in the example could be applied to other binary files, such as PDF, MS-WORD docs, Excel docs, etc.

Chilkat Objective-C Downloads

Objective-C
#import <CkoMime.h>
#import <NSString.h>
#import <CkoEmail.h>

BOOL success = NO;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

CkoMime *mime = [[CkoMime alloc] init];

success = [mime SetBodyFromFile: @"VoiceMessage.wav"];
if (success == NO) {
    NSLog(@"%@",mime.LastErrorText);
    return;
}

// The MIME has this header:
// Content-Disposition: attachment;
// 	 filename="VoiceMessage.wav"
// Content-Transfer-Encoding: base64
// Content-Type: audio/x-wav;
// 	name="VoiceMessage.wav"

// We don't want the content-disposition to be an
// attachment -- otherwise the email object will self-correct
// and put it in a multipart/mixed format...
mime.Disposition = @"";
mime.Filename = @"";

NSString *strMime = 0;
strMime = [mime GetMime];
NSLog(@"%@",strMime);

// Now load it into an email object:
CkoEmail *email = [[CkoEmail alloc] init];
success = [email SetFromMimeText: strMime];
if (success == NO) {
    NSLog(@"%@",email.LastErrorText);
    return;
}

// Add subject, TO, FROM, etc.
email.Subject = @"This is a test";
email.From = @"support@chilkatsoft.com";
success = [email AddTo: @"Matt" emailAddress: @"matt@chilkatsoft.com"];

// Your email is ready to send.
// (but for this example, we'll simply save it to a file...)
success = [email SaveEml: @"email.eml"];
if (success == NO) {
    NSLog(@"%@",email.LastErrorText);
    return;
}

NSLog(@"%@",@"OK!");