PHP Extension
PHP Extension
SendGrid HTML Email with Embedded Images
See more SendGrid Examples
Demonstrates how to send an HTML email with embedded images using SendGrid.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code
$req = new CkHttpRequest();
$http = new 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;" />
$bdJpg = new CkBinData();
$success = $bdJpg->LoadFile('qa_data/jpg/starfish.jpg');
if ($success == false) {
print 'Failed to load JPG file.' . "\n";
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 CkStringBuilder();
$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 CkJsonObject();
$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->put_AuthToken('SENDGRID_API_KEY');
$resp = new CkHttpResponse();
$success = $http->HttpJson('POST','https://api.sendgrid.com/v3/mail/send',$json,'application/json',$resp);
if ($success == false) {
print $http->lastErrorText() . "\n";
exit;
}
print 'response status code: ' . $resp->get_StatusCode() . "\n";
// 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.)
print $resp->bodyStr() . "\n";
?>