Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

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 mime [new_CkMime]

set success [CkMime_SetBodyFromFile $mime "VoiceMessage.wav"]
if {$success == 0} then {
    puts [CkMime_lastErrorText $mime]
    delete_CkMime $mime
    exit
}

# 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...
CkMime_put_Disposition $mime ""
CkMime_put_Filename $mime ""

set strMime [CkMime_getMime $mime]
puts "$strMime"

# Now load it into an email object:
set email [new_CkEmail]

set success [CkEmail_SetFromMimeText $email $strMime]
if {$success == 0} then {
    puts [CkEmail_lastErrorText $email]
    delete_CkMime $mime
    delete_CkEmail $email
    exit
}

# Add subject, TO, FROM, etc.
CkEmail_put_Subject $email "This is a test"
CkEmail_put_From $email "support@chilkatsoft.com"
set success [CkEmail_AddTo $email "Matt" "matt@chilkatsoft.com"]

# Your email is ready to send.
# (but for this example, we'll simply save it to a file...)
set success [CkEmail_SaveEml $email "email.eml"]
if {$success == 0} then {
    puts [CkEmail_lastErrorText $email]
    delete_CkMime $mime
    delete_CkEmail $email
    exit
}

puts "OK!"

delete_CkMime $mime
delete_CkEmail $email