PowerBuilder
PowerBuilder
Send HTML Email with Embedded Image Loaded from Memory
See more SMTP Examples
Demonstrates how to compose an HTML email with an embedded image where the image data is loaded directly from memory.Chilkat PowerBuilder Downloads
integer li_rc
long li_Success
oleobject loo_Fac
oleobject loo_Mailman
oleobject loo_Email
string ls_ContentIdStarfish
oleobject loo_SbHtml
long li_NumReplacements
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// First load image data into memory.
// This example loads image data from a file.
// However, your application could get the image data from any other source, such as
// from a database.
loo_Fac = create oleobject
li_rc = loo_Fac.ConnectToNewObject("Chilkat.FileAccess")
if li_rc < 0 then
destroy loo_Fac
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_ImageBytes = loo_Fac.ReadEntireFile("qa_data/jpg/starfish.jpg")
// The mailman object is used for sending and receiving email.
loo_Mailman = create oleobject
li_rc = loo_Mailman.ConnectToNewObject("Chilkat.MailMan")
// Use your SMTP server hostname. This example uses office365, but it could be any SMTP server..
loo_Mailman.SmtpHost = "outlook.office365.com"
loo_Mailman.SmtpPort = 587
loo_Mailman.StartTLS = 1
// Set the SMTP login/password
loo_Mailman.SmtpUsername = "OFFICE365-SMTP-LOGIN"
loo_Mailman.SmtpPassword = "OFFICE365-SMTP-PASSWORD"
// Create a new email object
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")
loo_Email.Subject = "HTML Email with Image Loaded from In-Memory Bytes"
loo_Email.From = "Chilkat Support <my-office365-user@mydomain.com>"
loo_Email.AddTo("Chilkat Support","support@chilkatsoft.com")
ls_ContentIdStarfish = loo_Email.AddRelatedData("starfish.jpg",loo_ImageBytes)
if loo_Email.LastMethodSuccess <> 1 then
Write-Debug loo_Email.LastErrorText
destroy loo_Fac
destroy loo_Mailman
destroy loo_Email
return
end if
// The src attribute for the image tag is set to the contentIdStarfish:
loo_SbHtml = create oleobject
li_rc = loo_SbHtml.ConnectToNewObject("Chilkat.StringBuilder")
loo_SbHtml.Append("<html><body><p>This is an HTML email with an embedded image.</p>")
loo_SbHtml.Append("<p><img src=~"cid:CONTENT_ID_STARFISH~" /></p></body></html>")
li_NumReplacements = loo_SbHtml.Replace("CONTENT_ID_STARFISH",ls_ContentIdStarfish)
loo_Email.SetHtmlBody(loo_SbHtml.GetAsString())
li_Success = loo_Mailman.SendEmail(loo_Email)
if li_Success <> 1 then
Write-Debug loo_Mailman.LastErrorText
else
Write-Debug "Mail Sent!"
end if
destroy loo_Fac
destroy loo_Mailman
destroy loo_Email
destroy loo_SbHtml