Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loMailman
LOCAL loEmail
LOCAL loSbCss
LOCAL lnBCrlf
LOCAL lcFilenameInHtml
LOCAL lcContentIdCss
LOCAL loSbHtml
LOCAL lnNumReplacements

lnSuccess = 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.
loMailman = CreateObject('Chilkat.MailMan')

* 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 = 1

* Set the SMTP login/password
loMailman.SmtpUsername = "OFFICE365-SMTP-LOGIN"
loMailman.SmtpPassword = "OFFICE365-SMTP-PASSWORD"

* Create a new email object
loEmail = CreateObject('Chilkat.Email')
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('Chilkat.StringBuilder')
lnBCrlf = 1
loSbCss.AppendLine("body {",lnBCrlf)
loSbCss.AppendLine("    background-color: powderblue;",lnBCrlf)
loSbCss.AppendLine("}",lnBCrlf)
loSbCss.AppendLine("h1 {",lnBCrlf)
loSbCss.AppendLine("    color: blue;",lnBCrlf)
loSbCss.AppendLine("}",lnBCrlf)
loSbCss.AppendLine("p {",lnBCrlf)
loSbCss.AppendLine("    color: red;",lnBCrlf)
loSbCss.AppendLine("}",lnBCrlf)

* 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 <> 1) THEN
    ? loEmail.LastErrorText
    RELEASE loMailman
    RELEASE loEmail
    RELEASE loSbCss
    CANCEL
ENDIF

* The src attribute for the image tag is set to the contentIdCss:
loSbHtml = CreateObject('Chilkat.StringBuilder')
loSbHtml.AppendLine("<!DOCTYPE html>",lnBCrlf)
loSbHtml.AppendLine("<html>",lnBCrlf)
loSbHtml.AppendLine("<head>",lnBCrlf)
loSbHtml.AppendLine('  <link rel="stylesheet" href="cid:CONTENT_ID_CSS">',lnBCrlf)
loSbHtml.AppendLine("</head>",lnBCrlf)
loSbHtml.AppendLine("<body>",lnBCrlf)
loSbHtml.AppendLine("",lnBCrlf)
loSbHtml.AppendLine("<h1>This is a heading</h1>",lnBCrlf)
loSbHtml.AppendLine("<p>This is a paragraph.</p>",lnBCrlf)
loSbHtml.AppendLine("",lnBCrlf)
loSbHtml.AppendLine("</body>",lnBCrlf)
loSbHtml.AppendLine("</html>",lnBCrlf)

lnNumReplacements = loSbHtml.Replace("CONTENT_ID_CSS",lcContentIdCss)

loEmail.SetHtmlBody(loSbHtml.GetAsString())

lnSuccess = loMailman.SendEmail(loEmail)
IF (lnSuccess <> 1) THEN
    ? loMailman.LastErrorText
ELSE
    ? "Mail Sent!"
ENDIF

RELEASE loMailman
RELEASE loEmail
RELEASE loSbCss
RELEASE loSbHtml