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