Sample code for 30+ languages & platforms
PureBasic

Create multipart/alternative MIME

See more MIME Examples

Demonstrates how to create a multipart/alternative MIME structure using the NewMultipartAlternative method.

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.

    ; Start with an empty MIME object...
    mime.i = CkMime::ckCreate()
    If mime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Initialize it as multipart/alternative.
    CkMime::ckNewMultipartAlternative(mime)

    ; 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 text/plain part looks like this:

    ; 	Content-Type: text/plain
    ; 	Content-Transfer-Encoding: 7bit
    ; 
    ; 	This is the plain text body.

    ; Create a text/HTML part.
    htmlMime.i = CkMime::ckCreate()
    If htmlMime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkMime::ckSetBodyFromHtml(htmlMime,"<html><body><p>This is the <b>HTML body</b></p></body></html>")
    Debug CkMime::ckGetMime(htmlMime)
    Debug "****"

    ; The text/html part looks like this:

    ; 	Content-Type: text/html
    ; 	Content-Transfer-Encoding: 7bit
    ; 
    ; 	<html><body><p>This is the <b>HTML body</b></p></body></html>

    ; Add both parts as children of the multipart/alternative
    CkMime::ckAppendPart(mime,ptMime)
    CkMime::ckAppendPart(mime,htmlMime)
    Debug CkMime::ckGetMime(mime)

    ; This the result.  The boundary string was automatically generaetd.

    ; 	Content-Type: multipart/alternative; boundary="------------080803090906030708030908"
    ; 
    ; 	--------------080803090906030708030908
    ; 	Content-Type: text/plain
    ; 	Content-Transfer-Encoding: 7bit
    ; 
    ; 	This is the plain text body.
    ; 	--------------080803090906030708030908
    ; 	Content-Type: text/html
    ; 	Content-Transfer-Encoding: 7bit
    ; 
    ; 	<html><body><p>This is the <b>HTML body</b></p></body></html>
    ; 	--------------080803090906030708030908--


    CkMime::ckDispose(mime)
    CkMime::ckDispose(ptMime)
    CkMime::ckDispose(htmlMime)


    ProcedureReturn
EndProcedure