Sample code for 30+ languages & platforms
PHP Extension

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

PHP Extension
<?php

include("chilkat.php");

$success = false;

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

$mime = new CkMime();

$success = $mime->NewMultipartAlternative();
if ($success == false) {
    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.
$textPart = new CkMime();
$success = $textPart->SetBodyFromPlainText('Hello (plain text version).');
if ($success == false) {
    print $textPart->lastErrorText() . "\n";
    exit;
}

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

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

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

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

?>