Perl
Perl
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 Perl Downloads
use chilkat();
$success = 0;
# 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 = chilkat::CkMailMan->new();
# Use your SMTP server hostname. This example uses office365, but it could be any SMTP server..
$mailman->put_SmtpHost("outlook.office365.com");
$mailman->put_SmtpPort(587);
$mailman->put_StartTLS(1);
# Set the SMTP login/password
$mailman->put_SmtpUsername("OFFICE365-SMTP-LOGIN");
$mailman->put_SmtpPassword("OFFICE365-SMTP-PASSWORD");
# Create a new email object
$email = chilkat::CkEmail->new();
$email->put_Subject("HTML Email with embedded CSS");
$email->put_From('Chilkat Support <my-office365-user@mydomain.com>');
$email->AddTo("Chilkat Support",'support@chilkatsoft.com');
$sbCss = chilkat::CkStringBuilder->new();
$bCrlf = 1;
$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";
$contentIdCss = $email->addRelatedString($filenameInHtml,$sbCss->getAsString(),"utf-8");
if ($email->get_LastMethodSuccess() != 1) {
print $email->lastErrorText() . "\r\n";
exit;
}
# The src attribute for the image tag is set to the contentIdCss:
$sbHtml = chilkat::CkStringBuilder->new();
$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());
$success = $mailman->SendEmail($email);
if ($success != 1) {
print $mailman->lastErrorText() . "\r\n";
}
else {
print "Mail Sent!" . "\r\n";
}