Tcl
Tcl
Add Image to HTML Email
See more Email Object Examples
Demonstrates how to add an image to an HTML email.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set email [new_CkEmail]
CkEmail_put_From $email "Matt <matt@example.com>"
CkEmail_AddTo $email "Joe" "joe@example.com"
CkEmail_put_Subject $email "This is a test"
# Add an HTML body with an image tag.
set html "<html><body><p>Test with image:</p><p><img src=\"/wildlife/starfish.jpg\" /></p></body></html>"
CkEmail_SetHtmlBody $email $html
# Add the image data from a file. The pathInHtml must match the value of the img tag's src attribute.
set pathInHtml "/wildlife/starfish.jpg"
# The actual path of the JPG file in the local filesystem:
set pathOnDisk "qa_data/jpg/starfish20.jpg"
set success [CkEmail_AddRelatedFile2 $email $pathOnDisk $pathInHtml]
if {$success == 0} then {
puts [CkEmail_lastErrorText $email]
delete_CkEmail $email
exit
}
# 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.
set success [CkEmail_SaveEml $email "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.
puts [CkEmail_getMime $email]
# 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--
delete_CkEmail $email