Sample code for 30+ languages & platforms
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

PowerBuilder
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