Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

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 Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Http,
  Chilkat.BinData,
  Chilkat.Email,
  Chilkat.MailMan;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  bdJpg: TBinData;
  http: THttp;
  mailman: TMailMan;
  email: TEmail;
  html: string;

begin
  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.
  bdJpg := TBinData.Create;
  http := THttp.Create;
  success := http.QuickGetBd('https://www.chilkatsoft.com/images/starfish.jpg',bdJpg);
  if (success = False) then
    begin
      WriteLn(http.LastErrorText);
      Exit;
    end;

  mailman := TMailMan.Create;

  //  Use your SMTP server..
  mailman.SmtpHost := 'smtp.yourserver.com';
  mailman.SmtpPort := 587;
  mailman.StartTLS := True;

  //  Set the SMTP login/password
  mailman.SmtpUsername := 'my_login';
  mailman.SmtpPassword := 'my_password';

  //  Create an HTML email.
  email := TEmail.Create;
  email.Subject := 'HTML Email with Image';
  email.From := 'Dave <somebody@mydomain.com>';
  email.AddTo('Chilkat','info@chilkatsoft.com');

  html := '<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,'starfish.jpg');
  if (success = False) then
    begin
      WriteLn(email.LastErrorText);
      Exit;
    end;

  email.SaveEml('qa_output/out.eml');

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

  WriteLn('Success.');


  bdJpg.Free;
  http.Free;
  mailman.Free;
  email.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.