Lianja
Lianja
SendGrid HTML Email with Embedded Images
See more SendGrid Examples
Demonstrates how to send an HTML email with embedded images using SendGrid.Chilkat Lianja Downloads
llSuccess = .F.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code
loReq = createobject("CkHttpRequest")
loHttp = createobject("CkHttp")
// First.. load a JPG file and build an HTML img tag with the JPG data inline encoded.
// Our HTML img tag will look like this:
// <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA3ADcAA..." alt="" style="border-width:0px;" />
loBdJpg = createobject("CkBinData")
llSuccess = loBdJpg.LoadFile("qa_data/jpg/starfish.jpg")
if (llSuccess = .F.) then
? "Failed to load JPG file."
release loReq
release loHttp
release loBdJpg
return
endif
// Note: HTML containing embedded base64 image data may not be visible in all email clients.
// For example, GMail might not display the image, but viewing in Outlook might be OK.
loSbHtml = createobject("CkStringBuilder")
loSbHtml.Append('<html><body><b>This is a test<b><br /><img src="data:image/jpeg;base64,')
// Append the base64 image data to sbHtml.
loBdJpg.GetEncodedSb("base64",loSbHtml)
loSbHtml.Append('" alt="" style="border-width:0px;" /></body></html>')
loJson = createobject("CkJsonObject")
loJson.UpdateString("personalizations[0].to[0].email","matt@chilkat.io")
loJson.UpdateString("personalizations[0].to[0].name","Matt")
loJson.UpdateString("from.email","admin@chilkatsoft.com")
loJson.UpdateString("subject","Test HTML email with images")
loJson.UpdateString("content[0].type","text/html")
loJson.UpdateSb("content[0].value",loSbHtml)
loHttp.AuthToken = "SENDGRID_API_KEY"
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpJson("POST","https://api.sendgrid.com/v3/mail/send",loJson,"application/json",loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loReq
release loHttp
release loBdJpg
release loSbHtml
release loJson
release loResp
return
endif
? "response status code: " + str(loResp.StatusCode)
// Display the response.
// If successful, the response code is 202 and the response body string is empty.
// (The response body string may also be empty for error response codes.)
? loResp.BodyStr
release loReq
release loHttp
release loBdJpg
release loSbHtml
release loJson
release loResp