AutoIt
AutoIt
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 AutoIt Downloads
Local $bSuccess = 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.
$oMailman = ObjCreate("Chilkat.MailMan")
; Use your SMTP server hostname. This example uses office365, but it could be any SMTP server..
$oMailman.SmtpHost = "outlook.office365.com"
$oMailman.SmtpPort = 587
$oMailman.StartTLS = True
; Set the SMTP login/password
$oMailman.SmtpUsername = "OFFICE365-SMTP-LOGIN"
$oMailman.SmtpPassword = "OFFICE365-SMTP-PASSWORD"
; Create a new email object
$oEmail = ObjCreate("Chilkat.Email")
$oEmail.Subject = "HTML Email with embedded CSS"
$oEmail.From = "Chilkat Support <my-office365-user@mydomain.com>"
$oEmail.AddTo("Chilkat Support","support@chilkatsoft.com")
$oSbCss = ObjCreate("Chilkat.StringBuilder")
Local $bCrlf = True
$oSbCss.AppendLine("body {",$bCrlf)
$oSbCss.AppendLine(" background-color: powderblue;",$bCrlf)
$oSbCss.AppendLine("}",$bCrlf)
$oSbCss.AppendLine("h1 {",$bCrlf)
$oSbCss.AppendLine(" color: blue;",$bCrlf)
$oSbCss.AppendLine("}",$bCrlf)
$oSbCss.AppendLine("p {",$bCrlf)
$oSbCss.AppendLine(" color: red;",$bCrlf)
$oSbCss.AppendLine("}",$bCrlf)
; It's possible to add a CSS file directly by calling AddRelatedFile.
; This example will add the CSS from a string.
Local $sFilenameInHtml = "styles.css"
Local $sContentIdCss = $oEmail.AddRelatedString($sFilenameInHtml,$oSbCss.GetAsString(),"utf-8")
If ($oEmail.LastMethodSuccess <> True) Then
ConsoleWrite($oEmail.LastErrorText & @CRLF)
Exit
EndIf
; The src attribute for the image tag is set to the contentIdCss:
$oSbHtml = ObjCreate("Chilkat.StringBuilder")
$oSbHtml.AppendLine("<!DOCTYPE html>",$bCrlf)
$oSbHtml.AppendLine("<html>",$bCrlf)
$oSbHtml.AppendLine("<head>",$bCrlf)
$oSbHtml.AppendLine(" <link rel=""stylesheet"" href=""cid:CONTENT_ID_CSS"">",$bCrlf)
$oSbHtml.AppendLine("</head>",$bCrlf)
$oSbHtml.AppendLine("<body>",$bCrlf)
$oSbHtml.AppendLine("",$bCrlf)
$oSbHtml.AppendLine("<h1>This is a heading</h1>",$bCrlf)
$oSbHtml.AppendLine("<p>This is a paragraph.</p>",$bCrlf)
$oSbHtml.AppendLine("",$bCrlf)
$oSbHtml.AppendLine("</body>",$bCrlf)
$oSbHtml.AppendLine("</html>",$bCrlf)
Local $iNumReplacements = $oSbHtml.Replace("CONTENT_ID_CSS",$sContentIdCss)
$oEmail.SetHtmlBody $oSbHtml.GetAsString()
$bSuccess = $oMailman.SendEmail($oEmail)
If ($bSuccess <> True) Then
ConsoleWrite($oMailman.LastErrorText & @CRLF)
Else
ConsoleWrite("Mail Sent!" & @CRLF)
EndIf