PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# 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-Object Chilkat.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-Object Chilkat.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-Object Chilkat.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"
$contentIdCss = $email.AddRelatedString($filenameInHtml,$sbCss.GetAsString(),"utf-8")
if ($email.LastMethodSuccess -ne $true) {
$($email.LastErrorText)
exit
}
# The src attribute for the image tag is set to the contentIdCss:
$sbHtml = New-Object Chilkat.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())
$success = $mailman.SendEmail($email)
if ($success -ne $true) {
$($mailman.LastErrorText)
}
else {
$("Mail Sent!")
}