PowerBuilder
PowerBuilder
Add Image to HTML Email
See more Email Object Examples
Demonstrates how to add an image to an HTML email.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Email
string ls_Html
string ls_PathInHtml
string ls_PathOnDisk
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")
if li_rc < 0 then
destroy loo_Email
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_Email.From = "Matt <matt@example.com>"
loo_Email.AddTo("Joe","joe@example.com")
loo_Email.Subject = "This is a test"
// Add an HTML body with an image tag.
ls_Html = "<html><body><p>Test with image:</p><p><img src=~"/wildlife/starfish.jpg~" /></p></body></html>"
loo_Email.SetHtmlBody(ls_Html)
// Add the image data from a file. The pathInHtml must match the value of the img tag's src attribute.
ls_PathInHtml = "/wildlife/starfish.jpg"
// The actual path of the JPG file in the local filesystem:
ls_PathOnDisk = "qa_data/jpg/starfish20.jpg"
li_Success = loo_Email.AddRelatedFile2(ls_PathOnDisk,ls_PathInHtml)
if li_Success = 0 then
Write-Debug loo_Email.LastErrorText
destroy loo_Email
return
end if
// The email is now properly constructed with an image that will be visible in the HTML.
// In this example, we'll save it to a .eml file and verify by loading the .eml in an email client such as Mozilla Thunderbird.
li_Success = loo_Email.SaveEml("qa_output/starfish.eml")
// Also, we can examine the MIME to understand how the image data in the MIME is associated with the img tag in the HTML.
// It is the Content-Location header value that must match the value of the img tag's src attribute.
Write-Debug loo_Email.GetMime()
// Here's the MIME:
// MIME-Version: 1.0
// Date: Thu, 26 May 2022 11:09:12 -0500
// Message-ID: <B1D499F74F533E287BFE04BBD79AAF1D973B61E3@SLICE>
// Content-Type: multipart/related; boundary="------------000205040704010904010706"
// X-Priority: 3 (Normal)
// From: Matt <matt@example.com>
// To: Joe <joe@example.com>
// Subject: This is a test
//
// --------------000205040704010904010706
// Content-Type: text/html; charset=us-ascii
// Content-Transfer-Encoding: 7bit
//
// <html><body><p>Test with image:</p><p><img src="/wildlife/starfish.jpg" /></p></body></html>
// --------------000205040704010904010706
// Content-Type: image/jpeg; name="/wildlife/starfish.jpg"
// Content-Transfer-Encoding: base64
// Content-Disposition: inline; filename="/wildlife/starfish.jpg"
// Content-Location: /wildlife/starfish.jpg
//
// /9j/4AAQSkZJRgABAQEASABIAAD//gAmRmlsZSB3cml0dGVuIGJ5IEFkb2JlIFBob3Rvc2hvcD8g
// NC4w/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdf
// YmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj
// Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8IAEQgAFAAUAwERAAIRAQMRAf/EABcAAAMBAAAA
// AAAAAAAAAAAAAAIDBAX/xAAYAQADAQEAAAAAAAAAAAAAAAABAgMEAP/aAAwDAQACEAMQAAAB2kZY
// NNEijWKddfTmLgALWH//xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRAAQSE//aAAgBAQABBQL0XqN+
// pM2aqJGMiqFFCyg7z//EABwRAAICAgMAAAAAAAAAAAAAAAERAAIQIQMSUf/aAAgBAwEBPwHqU5aq
// Axx+y1tMQl4elj//xAAcEQEAAQUBAQAAAAAAAAAAAAABEQACEBIhA1H/2gAIAQIBAT8B3Bhqy7Zc
// enyiwmGgDhiOzj//xAAdEAABAwUBAAAAAAAAAAAAAAABAAIREBIhIkFR/9oACAEBAAY/ArZyn+Cg
// xtxWuJaoCnqDuin/xAAcEAABBAMBAAAAAAAAAAAAAAABABEhYRAxQVH/2gAIAQEAAT8hkEwPUUR9
// DYfE4nxtRpIkBTsayuALIiuY/9oADAMBAAIAAwAAABDWPTsf/8QAGhEAAwADAQAAAAAAAAAAAAAA
// AAEREDFBIf/aAAgBAwEBPxC0DVPcWm+Ce4OesrkE6bjH/8QAGBEBAQEBAQAAAAAAAAAAAAAAAREA
// QRD/2gAIAQIBAT8QahMiOc8YgSrnTY3ELclHXn//xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFx
// EFH/2gAIAQEAAT8Qn3igmSZSj+c4N4zapMy9IjFV98wncN2iuLFsCEbDGxQkI6RO/n//2Q==
//
// --------------000205040704010904010706--
destroy loo_Email