Lianja
Lianja
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 Lianja Downloads
llSuccess = .F.
// 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.
loMailman = createobject("CkMailMan")
// Use your SMTP server hostname. This example uses office365, but it could be any SMTP server..
loMailman.SmtpHost = "outlook.office365.com"
loMailman.SmtpPort = 587
loMailman.StartTLS = .T.
// Set the SMTP login/password
loMailman.SmtpUsername = "OFFICE365-SMTP-LOGIN"
loMailman.SmtpPassword = "OFFICE365-SMTP-PASSWORD"
// Create a new email object
loEmail = createobject("CkEmail")
loEmail.Subject = "HTML Email with embedded CSS"
loEmail.From = "Chilkat Support <my-office365-user@mydomain.com>"
loEmail.AddTo("Chilkat Support","support@chilkatsoft.com")
loSbCss = createobject("CkStringBuilder")
llBCrlf = .T.
loSbCss.AppendLine("body {",llBCrlf)
loSbCss.AppendLine(" background-color: powderblue;",llBCrlf)
loSbCss.AppendLine("}",llBCrlf)
loSbCss.AppendLine("h1 {",llBCrlf)
loSbCss.AppendLine(" color: blue;",llBCrlf)
loSbCss.AppendLine("}",llBCrlf)
loSbCss.AppendLine("p {",llBCrlf)
loSbCss.AppendLine(" color: red;",llBCrlf)
loSbCss.AppendLine("}",llBCrlf)
// It's possible to add a CSS file directly by calling AddRelatedFile.
// This example will add the CSS from a string.
lcFilenameInHtml = "styles.css"
lcContentIdCss = loEmail.AddRelatedString(lcFilenameInHtml,loSbCss.GetAsString(),"utf-8")
if (loEmail.LastMethodSuccess <> .T.) then
? loEmail.LastErrorText
release loMailman
release loEmail
release loSbCss
return
endif
// The src attribute for the image tag is set to the contentIdCss:
loSbHtml = createobject("CkStringBuilder")
loSbHtml.AppendLine("<!DOCTYPE html>",llBCrlf)
loSbHtml.AppendLine("<html>",llBCrlf)
loSbHtml.AppendLine("<head>",llBCrlf)
loSbHtml.AppendLine(' <link rel="stylesheet" href="cid:CONTENT_ID_CSS">',llBCrlf)
loSbHtml.AppendLine("</head>",llBCrlf)
loSbHtml.AppendLine("<body>",llBCrlf)
loSbHtml.AppendLine("",llBCrlf)
loSbHtml.AppendLine("<h1>This is a heading</h1>",llBCrlf)
loSbHtml.AppendLine("<p>This is a paragraph.</p>",llBCrlf)
loSbHtml.AppendLine("",llBCrlf)
loSbHtml.AppendLine("</body>",llBCrlf)
loSbHtml.AppendLine("</html>",llBCrlf)
lnNumReplacements = loSbHtml.Replace("CONTENT_ID_CSS",lcContentIdCss)
loEmail.SetHtmlBody(loSbHtml.GetAsString())
llSuccess = loMailman.SendEmail(loEmail)
if (llSuccess <> .T.) then
? loMailman.LastErrorText
else
? "Mail Sent!"
endif
release loMailman
release loEmail
release loSbCss
release loSbHtml