Sample code for 30+ languages & platforms
PHP Extension

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 PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

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

$mime = new CkMime();

$success = $mime->SetBodyFromFile('VoiceMessage.wav');
if ($success == false) {
    print $mime->lastErrorText() . "\n";
    exit;
}

// 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->put_Disposition('');
$mime->put_Filename('');

$strMime = $mime->getMime();
print $strMime . "\n";

// Now load it into an email object:
$email = new CkEmail();
$success = $email->SetFromMimeText($strMime);
if ($success == false) {
    print $email->lastErrorText() . "\n";
    exit;
}

// Add subject, TO, FROM, etc.
$email->put_Subject('This is a test');
$email->put_From('support@chilkatsoft.com');
$success = $email->AddTo('Matt','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 == false) {
    print $email->lastErrorText() . "\n";
    exit;
}

print 'OK!' . "\n";

?>