Sample code for 30+ languages & platforms
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

PowerShell
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!")
}