Sample code for 30+ languages & platforms
DataFlex

Get a Header Attribute of an Attached Message

See more Email Object Examples

Demonstrates the Chilkat Email.GetAttachedMessageAttr method, which returns a header-field attribute value for the Nth attached (embedded) email. The first argument is the zero-based attached-message index, the second is the header field name, and the third is the attribute name. This example attaches an email and reads the filename attribute of its Content-Disposition header.

Background: MIME header fields can carry named attributes (parameters) after the main value — for example Content-Disposition: attachment; filename="report.eml", where filename is an attribute. Rather than parsing the raw header yourself, this method extracts a single named attribute from a chosen header of a specific embedded message, which is convenient when a message forwards other emails as nested message/rfc822 parts.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vInnerEmail
    Handle hoInnerEmail
    Handle hoEmail
    String sFname
    String sTemp1

    Move False To iSuccess

    //  Demonstrates the GetAttachedMessageAttr method, which returns a header-field attribute
    //  value for the Nth attached (embedded) email.  The first argument is the zero-based
    //  attached-message index, the second is the header field name, and the third is the attribute name.

    //  Build an inner email to attach.
    Get Create (RefClass(cComChilkatEmail)) To hoInnerEmail
    If (Not(IsComObjectCreated(hoInnerEmail))) Begin
        Send CreateComObject of hoInnerEmail
    End
    Set ComSubject Of hoInnerEmail To "Embedded message"
    Set ComFrom Of hoInnerEmail To "alice@example.com"
    Get ComAddTo Of hoInnerEmail "Bob" "bob@example.com" To iSuccess

    //  Attach it to an outer email as a message/rfc822 part.
    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "Has an attached message"
    Get pvComObject of hoInnerEmail to vInnerEmail
    Get ComAttachEmail Of hoEmail vInnerEmail To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    //  Get the "filename" attribute of the "Content-Disposition" header of the first
    //  attached message (index 0).
    Get ComGetAttachedMessageAttr Of hoEmail 0 "Content-Disposition" "filename" To sFname
    Showln "Attached message filename attribute: " sFname


End_Procedure