Sample code for 30+ languages & platforms
PHP ActiveX

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 ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

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

$mime = new COM("Chilkat.Mime");

$success = $mime->SetBodyFromFile('VoiceMessage.wav');
if ($success == 0) {
    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->Disposition = '';
$mime->Filename = '';

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

// Now load it into an email object:
$email = new COM("Chilkat.Email");
$success = $email->SetFromMimeText($strMime);
if ($success == 0) {
    print $email->LastErrorText . "\n";
    exit;
}

// Add subject, TO, FROM, etc.
$email->Subject = 'This is a test';
$email->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 == 0) {
    print $email->LastErrorText . "\n";
    exit;
}

print 'OK!' . "\n";

?>