AutoIt
AutoIt
SendGrid HTML Email with Embedded Images
See more SendGrid Examples
Demonstrates how to send an HTML email with embedded images using SendGrid.Chilkat AutoIt Downloads
Local $bSuccess = False
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code
$oReq = ObjCreate("Chilkat.HttpRequest")
$oHttp = ObjCreate("Chilkat.Http")
; 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;" />
$oBdJpg = ObjCreate("Chilkat.BinData")
$bSuccess = $oBdJpg.LoadFile("qa_data/jpg/starfish.jpg")
If ($bSuccess = False) Then
ConsoleWrite("Failed to load JPG file." & @CRLF)
Exit
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.
$oSbHtml = ObjCreate("Chilkat.StringBuilder")
$oSbHtml.Append("<html><body><b>This is a test<b><br /><img src=""data:image/jpeg;base64,")
; Append the base64 image data to sbHtml.
$oBdJpg.GetEncodedSb("base64",$oSbHtml)
$oSbHtml.Append(""" alt="""" style=""border-width:0px;"" /></body></html>")
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("personalizations[0].to[0].email","matt@chilkat.io")
$oJson.UpdateString("personalizations[0].to[0].name","Matt")
$oJson.UpdateString("from.email","admin@chilkatsoft.com")
$oJson.UpdateString("subject","Test HTML email with images")
$oJson.UpdateString("content[0].type","text/html")
$oJson.UpdateSb("content[0].value",$oSbHtml)
$oHttp.AuthToken = "SENDGRID_API_KEY"
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpJson("POST","https://api.sendgrid.com/v3/mail/send",$oJson,"application/json",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("response status code: " & $oResp.StatusCode & @CRLF)
; 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.)
ConsoleWrite($oResp.BodyStr & @CRLF)