Sample code for 30+ languages & platforms
PowerBuilder

Create Email with Non-Standard Binary Body

Creates an email where the only body is a binary WAV file. The technique used in the example could be applied to other binary files, such as PDF, MS-WORD docs, Excel docs, etc.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Mime
string ls_StrMime
oleobject loo_Email

li_Success = 0

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Mime = create oleobject
li_rc = loo_Mime.ConnectToNewObject("Chilkat.Mime")
if li_rc < 0 then
    destroy loo_Mime
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_Mime.SetBodyFromFile("VoiceMessage.wav")
if li_Success = 0 then
    Write-Debug loo_Mime.LastErrorText
    destroy loo_Mime
    return
end if

// The MIME has this header:
// Content-Disposition: attachment;
// 	 filename="VoiceMessage.wav"
// Content-Transfer-Encoding: base64
// Content-Type: audio/x-wav;
// 	name="VoiceMessage.wav"

// We don't want the content-disposition to be an
// attachment -- otherwise the email object will self-correct
// and put it in a multipart/mixed format...
loo_Mime.Disposition = ""
loo_Mime.Filename = ""

ls_StrMime = loo_Mime.GetMime()
Write-Debug ls_StrMime

// Now load it into an email object:
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")

li_Success = loo_Email.SetFromMimeText(ls_StrMime)
if li_Success = 0 then
    Write-Debug loo_Email.LastErrorText
    destroy loo_Mime
    destroy loo_Email
    return
end if

// Add subject, TO, FROM, etc.
loo_Email.Subject = "This is a test"
loo_Email.From = "support@chilkatsoft.com"
li_Success = loo_Email.AddTo("Matt","matt@chilkatsoft.com")

// Your email is ready to send.
// (but for this example, we'll simply save it to a file...)
li_Success = loo_Email.SaveEml("email.eml")
if li_Success = 0 then
    Write-Debug loo_Email.LastErrorText
    destroy loo_Mime
    destroy loo_Email
    return
end if

Write-Debug "OK!"


destroy loo_Mime
destroy loo_Email