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

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