Sample code for 30+ languages & platforms
DataFlex

Append Part to MIME

See more MIME Examples

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vPtMime
    Handle hoPtMime
    Handle hoTopLevelMime
    Variant vPtMime2
    Handle hoPtMime2
    String sTemp1

    Move False To iSuccess

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

    // 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 ptMime contains:
    // ---------------------------------------
    // 	Content-Type: text/plain
    // 	Content-Transfer-Encoding: 7bit
    // 
    // 	This is the plain text body
    // ---------------------------------------

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

    // Initialize it to a multipart Content-Type.  We'll use multipart/mixed.
    Get ComNewMultipartMixed Of hoTopLevelMime To iSuccess

    // Append the ptMime as a child.
    Get pvComObject of hoPtMime to vPtMime
    Get ComAppendPart Of hoTopLevelMime vPtMime To iSuccess
    Get ComGetMime Of hoTopLevelMime To sTemp1
    Showln sTemp1
    Showln "****"

    // 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:
    Send ComSetBody To hoPtMime "this is the new plain text body."
    // topLevelMime is unchanged.
    Get ComGetMime Of hoTopLevelMime To sTemp1
    Showln sTemp1
    Showln "****"

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

    Get Create (RefClass(cComChilkatMime)) To hoPtMime2
    If (Not(IsComObjectCreated(hoPtMime2))) Begin
        Send CreateComObject of hoPtMime2
    End
    Get pvComObject of hoPtMime2 to vPtMime2
    Get ComPartAt Of hoTopLevelMime 0 vPtMime2 To iSuccess

    Send ComSetBody To hoPtMime2 "this is the new plain text body."
    // Now topLevelMime is changed.
    Get ComGetMime Of hoTopLevelMime To sTemp1
    Showln sTemp1


End_Procedure