Sample code for 30+ languages & platforms
Unicode C++

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 Unicode C++ Downloads

Unicode C++
#include <CkBinDataW.h>
#include <CkHttpW.h>
#include <CkMailManW.h>
#include <CkEmailW.h>

void ChilkatSample(void)
    {
    bool success = false;

    // 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.
    CkBinDataW bdJpg;
    CkHttpW http;
    success = http.QuickGetBd(L"https://www.chilkatsoft.com/images/starfish.jpg",bdJpg);
    if (success == false) {
        wprintf(L"%s\n",http.lastErrorText());
        return;
    }

    CkMailManW mailman;

    // Use your SMTP server..
    mailman.put_SmtpHost(L"smtp.yourserver.com");
    mailman.put_SmtpPort(587);
    mailman.put_StartTLS(true);

    // Set the SMTP login/password
    mailman.put_SmtpUsername(L"my_login");
    mailman.put_SmtpPassword(L"my_password");

    // Create an HTML email.
    CkEmailW email;
    email.put_Subject(L"HTML Email with Image");
    email.put_From(L"Dave <somebody@mydomain.com>");
    email.AddTo(L"Chilkat",L"info@chilkatsoft.com");

    const wchar_t *html = L"<html><body><p>This is an HTML email with an embedded image.</p><p><img src=\"starfish.jpg\" /></p></body></html>";
    email.SetHtmlBody(html);

    // Note: The "starfish.jpg" here must match the name in the "img" tag's "src" attribute in the HTML above.
    success = email.AddRelatedBd2(bdJpg,L"starfish.jpg");
    if (success == false) {
        wprintf(L"%s\n",email.lastErrorText());
        return;
    }

    email.SaveEml(L"qa_output/out.eml");

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

    wprintf(L"Success.\n");
    }