Sample code for 30+ languages & platforms
DataFlex

Create multipart/alternative MIME

See more MIME Examples

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMime
    Variant vPtMime
    Handle hoPtMime
    Variant vHtmlMime
    Handle hoHtmlMime
    String sTemp1

    Move False To iSuccess

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // Start with an empty MIME object...
    Get Create (RefClass(cComChilkatMime)) To hoMime
    If (Not(IsComObjectCreated(hoMime))) Begin
        Send CreateComObject of hoMime
    End

    // Initialize it as multipart/alternative.
    Get ComNewMultipartAlternative Of hoMime To iSuccess

    // Create a text/plain part.
    Get Create (RefClass(cComChilkatMime)) To hoPtMime
    If (Not(IsComObjectCreated(hoPtMime))) Begin
        Send CreateComObject of hoPtMime
    End
    Get ComSetBodyFromPlainText Of hoPtMime "This is the plain text body." To iSuccess
    Get ComGetMime Of hoPtMime To sTemp1
    Showln sTemp1
    Showln "****"

    // 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.
    Get Create (RefClass(cComChilkatMime)) To hoHtmlMime
    If (Not(IsComObjectCreated(hoHtmlMime))) Begin
        Send CreateComObject of hoHtmlMime
    End
    Get ComSetBodyFromHtml Of hoHtmlMime "<html><body><p>This is the <b>HTML body</b></p></body></html>" To iSuccess
    Get ComGetMime Of hoHtmlMime To sTemp1
    Showln sTemp1
    Showln "****"

    // 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
    Get pvComObject of hoPtMime to vPtMime
    Get ComAppendPart Of hoMime vPtMime To iSuccess
    Get pvComObject of hoHtmlMime to vHtmlMime
    Get ComAppendPart Of hoMime vHtmlMime To iSuccess
    Get ComGetMime Of hoMime To sTemp1
    Showln sTemp1

    // 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--


End_Procedure