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!");