Sample code for 30+ languages & platforms
DataFlex

Attach a File to an Email

See more Email Object Examples

Demonstrates the Chilkat Email.AddFileAttachment method, which attaches a file read from the filesystem. It returns the content type Chilkat assigned to the attachment (inferred from the file extension). This example attaches a PDF and prints its detected content type.

Background: Each attachment carries a Content-Type (MIME type) such as application/pdf or image/png that tells the receiving client how to handle it. Chilkat gets this from the file's extension. Because attachment bytes are binary, they are Base64-encoded for transport, which is handled automatically — you simply point AddFileAttachment at a path and the file is read, encoded, and packaged into the message.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    String sContentType
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    //  Demonstrates the AddFileAttachment method, which attaches a file read from the
    //  filesystem.  It returns the content type Chilkat assigned to the attachment (based on
    //  the file extension), or returns failure if the file could not be read.

    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.  The return value is the auto-detected content type.
    Get ComAddFileAttachment Of hoEmail "qa_data/attachments/report.pdf" To sContentType
    Get ComLastMethodSuccess Of hoEmail To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Attached content type = " sContentType
    Get ComNumAttachments Of hoEmail To iTemp1
    Showln "NumAttachments = " iTemp1

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


End_Procedure