PureBasic
PureBasic
Append Part to MIME
See more MIME Examples
Demonstrates the AppendPart method for adding sub-parts to MIME.Chilkat PureBasic Downloads
IncludeFile "CkMime.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; Create a text/plain part.
ptMime.i = CkMime::ckCreate()
If ptMime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkMime::ckSetBodyFromPlainText(ptMime,"This is the plain text body")
Debug CkMime::ckGetMime(ptMime)
Debug "****"
; The ptMime contains:
; ---------------------------------------
; Content-Type: text/plain
; Content-Transfer-Encoding: 7bit
;
; This is the plain text body
; ---------------------------------------
; Start with an empty MIME object...
topLevelMime.i = CkMime::ckCreate()
If topLevelMime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Initialize it to a multipart Content-Type. We'll use multipart/mixed.
CkMime::ckNewMultipartMixed(topLevelMime)
; Append the ptMime as a child.
CkMime::ckAppendPart(topLevelMime,ptMime)
Debug CkMime::ckGetMime(topLevelMime)
Debug "****"
; 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::ckSetBody(ptMime,"this is the new plain text body.")
; topLevelMime is unchanged.
Debug CkMime::ckGetMime(topLevelMime)
Debug "****"
; To change the content in topLevelMime, we must get the text/plain part.
; For example:
ptMime2.i = CkMime::ckCreate()
If ptMime2.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkMime::ckPartAt(topLevelMime,0,ptMime2)
CkMime::ckSetBody(ptMime2,"this is the new plain text body.")
; Now topLevelMime is changed.
Debug CkMime::ckGetMime(topLevelMime)
CkMime::ckDispose(ptMime)
CkMime::ckDispose(topLevelMime)
CkMime::ckDispose(ptMime2)
ProcedureReturn
EndProcedure