Sample code for 30+ languages & platforms
DataFlex

Send HTML Email with Image Downloaded from URL

Demonstrates how to compose an HTML email with an embedded image where the image data is downloaded from a URL.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vBdJpg
    Handle hoBdJpg
    Handle hoHttp
    Handle hoMailman
    Handle hoEmail
    String sHtml
    String sTemp1

    Move False To iSuccess

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

    // First download the image we'll be adding to the HTML "img" tag.
    Get Create (RefClass(cComChilkatBinData)) To hoBdJpg
    If (Not(IsComObjectCreated(hoBdJpg))) Begin
        Send CreateComObject of hoBdJpg
    End
    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End
    Get pvComObject of hoBdJpg to vBdJpg
    Get ComQuickGetBd Of hoHttp "https://www.chilkatsoft.com/images/starfish.jpg" vBdJpg To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatMailMan)) To hoMailman
    If (Not(IsComObjectCreated(hoMailman))) Begin
        Send CreateComObject of hoMailman
    End

    // Use your SMTP server..
    Set ComSmtpHost Of hoMailman To "smtp.yourserver.com"
    Set ComSmtpPort Of hoMailman To 587
    Set ComStartTLS Of hoMailman To True

    // Set the SMTP login/password
    Set ComSmtpUsername Of hoMailman To "my_login"
    Set ComSmtpPassword Of hoMailman To "my_password"

    // Create an HTML email.
    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "HTML Email with Image"
    Set ComFrom Of hoEmail To "Dave <somebody@mydomain.com>"
    Get ComAddTo Of hoEmail "Chilkat" "info@chilkatsoft.com" To iSuccess

    Move '<html><body><p>This is an HTML email with an embedded image.</p><p><img src="starfish.jpg" /></p></body></html>' To sHtml
    Send ComSetHtmlBody To hoEmail sHtml

    // Note: The "starfish.jpg" here must match the name in the "img" tag's "src" attribute in the HTML above.
    Get pvComObject of hoBdJpg to vBdJpg
    Get ComAddRelatedBd2 Of hoEmail vBdJpg "starfish.jpg" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoEmail To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComSaveEml Of hoEmail "qa_output/out.eml" To iSuccess

    // success = mailman.SendEmail(email);
    // if (success == ckfalse) {
    //     println mailman.LastErrorText;
    //     return;
    // }
    // 
    // ignore = mailman.CloseSmtpConnection();

    Showln "Success."


End_Procedure