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

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

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

my $mime = Chilkat2::Mime->new;

my $success = $mime->NewMultipartAlternative();
if (!$success) {
    print $mime->LastErrorText, "\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.
my $textPart = Chilkat2::Mime->new;
$success = $textPart->SetBodyFromPlainText('Hello (plain text version).');
if (!$success) {
    print $textPart->LastErrorText, "\n";
    exit;
}

$success = $mime->AppendPart($textPart);
if (!$success) {
    print $mime->LastErrorText, "\n";
    exit;
}

my $htmlPart = Chilkat2::Mime->new;
$success = $htmlPart->SetBodyFromHtml('<html><body><b>Hello</b> (HTML version).</body></html>');
if (!$success) {
    print $htmlPart->LastErrorText, "\n";
    exit;
}

$success = $mime->AppendPart($htmlPart);
if (!$success) {
    print $mime->LastErrorText, "\n";
    exit;
}

print 'Number of alternatives: ', $mime->NumParts, "\n";