Sample code for 30+ languages & platforms
Perl

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

Perl
use chilkat();

$success = 0;

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

$mime = chilkat::CkMime->new();

$success = $mime->SetBodyFromFile("VoiceMessage.wav");
if ($success == 0) {
    print $mime->lastErrorText() . "\r\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 . "\r\n";

# Now load it into an email object:
$email = chilkat::CkEmail->new();
$success = $email->SetFromMimeText($strMime);
if ($success == 0) {
    print $email->lastErrorText() . "\r\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 == 0) {
    print $email->lastErrorText() . "\r\n";
    exit;
}

print "OK!" . "\r\n";