Sample code for 30+ languages & platforms
Tcl

Append Part to MIME

See more MIME Examples

Demonstrates the AppendPart method for adding sub-parts to MIME.

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.

# Create a text/plain part.
set ptMime [new_CkMime]

CkMime_SetBodyFromPlainText $ptMime "This is the plain text body"
puts [CkMime_getMime $ptMime]
puts "****"

# The ptMime contains:
# ---------------------------------------
# 	Content-Type: text/plain
# 	Content-Transfer-Encoding: 7bit
# 
# 	This is the plain text body
# ---------------------------------------

# Start with an empty MIME object...
set topLevelMime [new_CkMime]

# Initialize it to a multipart Content-Type.  We'll use multipart/mixed.
CkMime_NewMultipartMixed $topLevelMime

# Append the ptMime as a child.
CkMime_AppendPart $topLevelMime $ptMime
puts [CkMime_getMime $topLevelMime]
puts "****"

# The topLevelMime contains:
# --------------------------
# 	Content-Type: multipart/mixed; boundary="------------010907090104040508040404"
# 
# 	--------------010907090104040508040404
# 	Content-Type: text/plain
# 	Content-Transfer-Encoding: 7bit
# 
# 	This is the plain text body
# 	--------------010907090104040508040404--
# 

# IMPORTANT: A copy of the MIME passed in AppendPart is appended.
# Therefore, in this case, changing ptMime does not change the text/plain sub-part in topLevelMime.
# For example:
CkMime_SetBody $ptMime "this is the new plain text body."
# topLevelMime is unchanged.
puts [CkMime_getMime $topLevelMime]
puts "****"

# To change the content in topLevelMime, we must get the text/plain part.
# For example:

set ptMime2 [new_CkMime]

CkMime_PartAt $topLevelMime 0 $ptMime2

CkMime_SetBody $ptMime2 "this is the new plain text body."
# Now topLevelMime is changed.
puts [CkMime_getMime $topLevelMime]

delete_CkMime $ptMime
delete_CkMime $topLevelMime
delete_CkMime $ptMime2