PHP ActiveX
PHP ActiveX
SendGrid HTML Email with Embedded Images
See more SendGrid Examples
Demonstrates how to send an HTML email with embedded images using SendGrid.Chilkat PHP ActiveX Downloads
<?php
$success = 0;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code
$req = new COM("Chilkat.HttpRequest");
$http = new COM("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 COM("Chilkat.BinData");
$success = $bdJpg->LoadFile('qa_data/jpg/starfish.jpg');
if ($success == 0) {
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 COM("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 COM("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 COM("Chilkat.HttpResponse");
$success = $http->HttpJson('POST','https://api.sendgrid.com/v3/mail/send',$json,'application/json',$resp);
if ($success == 0) {
print $http->LastErrorText . "\n";
exit;
}
print 'response status code: ' . $resp->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";
?>