PHP
Chilkat2 PHP
Send HTML Email with External CSS as Related Item
See more SMTP Examples
Demonstrates how to compose an HTML email with an external CSS file included as a related item and referenced by CID (Content-ID).Chilkat PHP Downloads
<?php
use Chilkat2\Email;
use Chilkat2\MailMan;
use Chilkat2\StringBuilder;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// The mailman object is used for sending and receiving email.
$mailman = new MailMan();
// Use your SMTP server hostname. This example uses office365, but it could be any SMTP server..
$mailman->SmtpHost = 'outlook.office365.com';
$mailman->SmtpPort = 587;
$mailman->StartTLS = true;
// Set the SMTP login/password
$mailman->SmtpUsername = 'OFFICE365-SMTP-LOGIN';
$mailman->SmtpPassword = 'OFFICE365-SMTP-PASSWORD';
// Create a new email object
$email = new Email();
$email->Subject = 'HTML Email with embedded CSS';
$email->From = 'Chilkat Support <my-office365-user@mydomain.com>';
$email->AddTo('Chilkat Support', 'support@chilkatsoft.com');
$sbCss = new StringBuilder();
$bCrlf = true;
$sbCss->AppendLine('body {', $bCrlf);
$sbCss->AppendLine(' background-color: powderblue;', $bCrlf);
$sbCss->AppendLine('}', $bCrlf);
$sbCss->AppendLine('h1 {', $bCrlf);
$sbCss->AppendLine(' color: blue;', $bCrlf);
$sbCss->AppendLine('}', $bCrlf);
$sbCss->AppendLine('p {', $bCrlf);
$sbCss->AppendLine(' color: red;', $bCrlf);
$sbCss->AppendLine('}', $bCrlf);
// It's possible to add a CSS file directly by calling AddRelatedFile.
// This example will add the CSS from a string.
$filenameInHtml = 'styles.css';
try {
$contentIdCss = $email->AddRelatedString($filenameInHtml, $sbCss->GetAsString(), 'utf-8');
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
// The src attribute for the image tag is set to the contentIdCss:
$sbHtml = new StringBuilder();
$sbHtml->AppendLine('<!DOCTYPE html>', $bCrlf);
$sbHtml->AppendLine('<html>', $bCrlf);
$sbHtml->AppendLine('<head>', $bCrlf);
$sbHtml->AppendLine(' <link rel="stylesheet" href="cid:CONTENT_ID_CSS">', $bCrlf);
$sbHtml->AppendLine('</head>', $bCrlf);
$sbHtml->AppendLine('<body>', $bCrlf);
$sbHtml->AppendLine('', $bCrlf);
$sbHtml->AppendLine('<h1>This is a heading</h1>', $bCrlf);
$sbHtml->AppendLine('<p>This is a paragraph.</p>', $bCrlf);
$sbHtml->AppendLine('', $bCrlf);
$sbHtml->AppendLine('</body>', $bCrlf);
$sbHtml->AppendLine('</html>', $bCrlf);
$numReplacements = $sbHtml->Replace('CONTENT_ID_CSS', $contentIdCss);
$email->SetHtmlBody($sbHtml->GetAsString());
try {
$mailman->SendEmail($email);
echo "Mail Sent!\n";
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
}