Sample code for 30+ languages & platforms
Lazarus Pascal

Verify Connectivity to the SMTP Server

See more SMTP Examples

Demonstrates the Chilkat MailMan.VerifySmtpConnection method, which tests whether a TCP/IP connection can be established with the configured SMTP server. It verifies connectivity only — it does not authenticate. This example configures the SMTP host and checks whether it can be reached.

Background: When a send fails, it helps to know where it broke. VerifySmtpConnection isolates the first hop — can the client even reach the server on the configured host and port, and complete the TLS handshake? A failure here points at networking, firewall, DNS, port, or certificate issues rather than credentials. Once connectivity is confirmed, VerifySmtpLogin tests the authentication step.

Chilkat Lazarus Pascal Downloads

Lazarus Pascal
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.MailMan;

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

procedure RunDemo;
var
  mailman: TMailMan;
  connected: Boolean;

begin
  //  Demonstrates the MailMan.VerifySmtpConnection method, which tests whether a TCP/IP
  //  connection can be established with the configured SMTP server.  It verifies connectivity
  //  only (it does not authenticate).

  mailman := TMailMan.Create;

  //  Configure the SMTP server connection.
  mailman.SmtpHost := 'smtp.example.com';
  mailman.SmtpPort := 465;
  mailman.SmtpSsl := True;

  //  Test connectivity to the SMTP server.
  connected := mailman.VerifySmtpConnection();

  if (connected = True) then
    begin
      WriteLn('Successfully connected to the SMTP server.');
    end
  else
    begin
      WriteLn('Could not connect to the SMTP server.');
    end;


  mailman.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.