Sample code for 30+ languages & platforms
Perl

Create a multipart/alternative MIME Entity

See more MIME Examples

Demonstrates the Chilkat Mime.NewMultipartAlternative method, which initializes the object as an empty multipart/alternative entity. It takes no arguments; the alternative representations are then appended.

Background: multipart/alternative holds several renderings of the same content and lets the client pick the best one it can display — the standard way to send an email as both plain text and HTML. Order matters: parts go from least to most preferred, so the plain-text version comes first and the HTML last, and a client shows the last one it understands.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

#  Demonstrates the Mime.NewMultipartAlternative method, which initializes the object as an empty
#  multipart/alternative entity, clearing any existing content.  It takes no arguments.

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

$success = $mime->NewMultipartAlternative();
if ($success == 0) {
    print $mime->lastErrorText() . "\r\n";
    exit;
}

#  multipart/alternative holds two representations of the SAME content; the client displays the
#  last one it can render.  Add a plain-text part, then an HTML part.
$textPart = chilkat::CkMime->new();
$success = $textPart->SetBodyFromPlainText("Hello (plain text version).");
if ($success == 0) {
    print $textPart->lastErrorText() . "\r\n";
    exit;
}

$success = $mime->AppendPart($textPart);
if ($success == 0) {
    print $mime->lastErrorText() . "\r\n";
    exit;
}

$htmlPart = chilkat::CkMime->new();
$success = $htmlPart->SetBodyFromHtml("<html><body><b>Hello</b> (HTML version).</body></html>");
if ($success == 0) {
    print $htmlPart->lastErrorText() . "\r\n";
    exit;
}

$success = $mime->AppendPart($htmlPart);
if ($success == 0) {
    print $mime->lastErrorText() . "\r\n";
    exit;
}

print "Number of alternatives: " . $mime->get_NumParts() . "\r\n";