Tcl
Tcl
Send HTML Email with Attachments
See more SMTP Examples
Demonstrates how to send an HTML email with file attachments.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 mailman [new_CkMailMan]
CkMailMan_put_SmtpHost $mailman "smtp.my-starttls-mail-server.com"
CkMailMan_put_SmtpUsername $mailman "MY-SMTP-USERNAME"
CkMailMan_put_SmtpPassword $mailman "MY-SMTP-PASSWORD"
CkMailMan_put_StartTLS $mailman 1
CkMailMan_put_SmtpPort $mailman 587
# Create a new email object
set email [new_CkEmail]
CkEmail_put_Subject $email "Test SMTP API to Send HTML Email with Attachments"
CkEmail_put_From $email "Joe Programmer <joe@my-starttls-mail-server.com>"
CkEmail_AddTo $email "Chilkat Support" "support@chilkatsoft.com"
# Add a plain-text alternative body, which will likely never be seen.
# (It is shown if the receiving email client is incapable of displaying HTML email.)
CkEmail_AddPlainTextAlternativeBody $email "This is a plain-text alternative body..."
# Our HTML will include an image, so add the related image here.
set contentIdStarfish [CkEmail_addRelatedFile $email "qa_data/jpg/starfish.jpg"]
if {[CkEmail_get_LastMethodSuccess $email] != 1} then {
puts [CkEmail_lastErrorText $email]
delete_CkMailMan $mailman
delete_CkEmail $email
exit
}
# The src attribute for the image tag is set to the contentIdStarfish:
set sbHtml [new_CkStringBuilder]
CkStringBuilder_Append $sbHtml "<html><body><p>This is an HTML email with an embedded image.</p>"
CkStringBuilder_Append $sbHtml "<p><img src=\"cid:CONTENT_ID_STARFISH\" /></p></body></html>"
set numReplacements [CkStringBuilder_Replace $sbHtml "CONTENT_ID_STARFISH" $contentIdStarfish]
CkEmail_AddHtmlAlternativeBody $email [CkStringBuilder_getAsString $sbHtml]
# Finally, add some attachments to the email.
# Add a file attachment.
set success [CkEmail_AddFileAttachment2 $email "qa_data/pdf/fishing.pdf" "application/pdf"]
if {$success != 1} then {
puts [CkEmail_lastErrorText $email]
delete_CkMailMan $mailman
delete_CkEmail $email
delete_CkStringBuilder $sbHtml
exit
}
# Add an attachment where the content is contained in a string.
set content "This is the content of the 2nd attached file."
CkEmail_AddStringAttachment $email "someText.txt" $content
# Send the HTML email.
set success [CkMailMan_SendEmail $mailman $email]
if {$success != 1} then {
puts [CkMailMan_lastErrorText $mailman]
delete_CkMailMan $mailman
delete_CkEmail $email
delete_CkStringBuilder $sbHtml
exit
}
set success [CkMailMan_CloseSmtpConnection $mailman]
if {$success != 1} then {
puts "Connection to SMTP server not closed cleanly."
}
puts "HTML email with attachments sent!"
delete_CkMailMan $mailman
delete_CkEmail $email
delete_CkStringBuilder $sbHtml