Sample code for 30+ languages & platforms
PureBasic

Append Part to MIME

See more MIME Examples

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

Chilkat PureBasic Downloads

PureBasic
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