PowerShell
PowerShell
SendGrid HTML Email with Embedded Images
See more SendGrid Examples
Demonstrates how to send an HTML email with embedded images using SendGrid.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code
$req = New-Object Chilkat.HttpRequest
$http = New-Object 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;" />
$bdJpg = New-Object Chilkat.BinData
$success = $bdJpg.LoadFile("qa_data/jpg/starfish.jpg")
if ($success -eq $false) {
$("Failed to load JPG file.")
exit
}
# 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.
$sbHtml = New-Object Chilkat.StringBuilder
$sbHtml.Append("<html><body><b>This is a test<b><br /><img src=`"data:image/jpeg;base64,")
# Append the base64 image data to sbHtml.
$bdJpg.GetEncodedSb("base64",$sbHtml)
$sbHtml.Append("`" alt=`"`" style=`"border-width:0px;`" /></body></html>")
$json = New-Object Chilkat.JsonObject
$json.UpdateString("personalizations[0].to[0].email","matt@chilkat.io")
$json.UpdateString("personalizations[0].to[0].name","Matt")
$json.UpdateString("from.email","admin@chilkatsoft.com")
$json.UpdateString("subject","Test HTML email with images")
$json.UpdateString("content[0].type","text/html")
$json.UpdateSb("content[0].value",$sbHtml)
$http.AuthToken = "SENDGRID_API_KEY"
$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpJson("POST","https://api.sendgrid.com/v3/mail/send",$json,"application/json",$resp)
if ($success -eq $false) {
$($http.LastErrorText)
exit
}
$("response status code: " + $resp.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.)
$($resp.BodyStr)