Sample code for 30+ languages & platforms
DataFlex

Remove a Part from a Multipart MIME Entity

See more MIME Examples

Demonstrates the Chilkat Mime.RemovePart method, which removes the direct child at a zero-based index. The only argument is the index; valid values are 0 through NumParts - 1. An out-of-range index returns false and changes nothing.

Note: The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background: Removing a part is how you strip an attachment or drop an unwanted alternative when reprocessing a message. Because parts are addressed by position, be mindful that removing one shifts the indexes of those after it — when deleting several, iterate from the last index downward so earlier removals do not renumber the parts you still intend to remove.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMime
    Integer iLastIndex
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatMime)) To hoMime
    If (Not(IsComObjectCreated(hoMime))) Begin
        Send CreateComObject of hoMime
    End
    Get ComLoadMimeFile Of hoMime "qa_data/multipart_message.eml" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMime To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    //  Remove the direct child part at a zero-based index.  Valid indexes are 0 through NumParts - 1.
    //  Here the last part is removed.
    Get ComNumParts Of hoMime To iTemp1
    Move (iTemp1 - 1) To iLastIndex
    Get ComRemovePart Of hoMime iLastIndex To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoMime To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComNumParts Of hoMime To iTemp1
    Showln "Parts remaining: " iTemp1


End_Procedure