Sample code for 30+ languages & platforms
DataFlex

Send Email With Attachments

See more SMTP Examples

Demonstrates how to send an email with attachments.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoMailman
    Variant vEmail
    Handle hoEmail
    String sContentType
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    // The mailman object is used for sending (SMTP) and receiving (POP3) email.
    Get Create (RefClass(cComChilkatMailMan)) To hoMailman
    If (Not(IsComObjectCreated(hoMailman))) Begin
        Send CreateComObject of hoMailman
    End

    // Set the SMTP server.
    Set ComSmtpHost Of hoMailman To "smtp.my-tls-mail-server.com"

    // Set the SMTP login/password (if required)
    Set ComSmtpUsername Of hoMailman To "MY_SMTP_USERNAME"
    Set ComSmtpPassword Of hoMailman To "MY_SMTP_PASSWORD"

    // Connect to SMTP port 465 using TLS.
    Set ComSmtpSsl Of hoMailman To True
    Set ComSmtpPort Of hoMailman To 465

    // Create a new email object
    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    Set ComSubject Of hoEmail To "This is a test"
    Set ComBody Of hoEmail To "This is a test"
    Set ComFrom Of hoEmail To "Chilkat Support <support@chilkatsoft.com>"
    Get ComAddTo Of hoEmail "Chilkat Admin" "admin@chilkatsoft.com" To iSuccess
    // To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.

    // Add some attachments.
    // The AddFileAttachment method returns the value of the content-type it chose for the attachment.
    Get ComAddFileAttachment Of hoEmail "qa_data/jpg/starfish.jpg" To sContentType
    Get ComLastMethodSuccess Of hoEmail To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComAddFileAttachment Of hoEmail "qa_data/pdf/fishing.pdf" To sContentType
    Get ComLastMethodSuccess Of hoEmail To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Call SendEmail to connect to the SMTP server and send.
    // The connection (i.e. session) to the SMTP server remains
    // open so that subsequent SendEmail calls may use the
    // same connection.  
    Get pvComObject of hoEmail to vEmail
    Get ComSendEmail Of hoMailman vEmail To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoMailman To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComCloseSmtpConnection Of hoMailman To iSuccess
    If (iSuccess <> True) Begin
        Showln "Connection to SMTP server not closed cleanly."
    End

    Showln "Mail with attachments sent!"


End_Procedure