Sample code for 30+ languages & platforms
DataFlex

Attach a File with an Explicit Content Type

See more Email Object Examples

Demonstrates the Chilkat Email.AddFileAttachment2 method, which attaches a file from the filesystem and lets you explicitly specify its content type rather than having Chilkat infer it from the file extension. This example attaches a binary file as application/octet-stream.

Background: Extension-based type detection is convenient but not always right — a file may have an unusual or missing extension, or you may need a very specific MIME type for the recipient to process it correctly. Specifying the content type explicitly removes the guesswork. application/octet-stream is the generic "arbitrary binary data" type, a safe default that tells the client to treat the attachment as an opaque download rather than trying to render it.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoEmail
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    //  Demonstrates the AddFileAttachment2 method, which attaches a file and lets you
    //  explicitly specify its content type instead of letting Chilkat infer it.

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "Email with a file attachment"
    Set ComBody Of hoEmail To "Please see the attached file."

    //  Attach a file, explicitly specifying the content type.
    Get ComAddFileAttachment2 Of hoEmail "qa_data/attachments/data.bin" "application/octet-stream" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComNumAttachments Of hoEmail To iTemp1
    Showln "NumAttachments = " iTemp1

    //  Note: The path "qa_data/attachments/data.bin" is a relative local filesystem path,
    //  relative to the current working directory of the running application.


End_Procedure