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

IMAP LastResponse and LastResponseCode

Demonstrates the IMAP LastResponse and LastResponseCode properties.

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

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

procedure RunDemo;
var
  success: Boolean;
  imap: TImap;

begin
  success := False;

  //  This example assumes the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  imap := TImap.Create;

  //  Use TLS
  imap.Ssl := True;
  imap.Port := 993;
  success := imap.Connect('imap.gmail.com');
  if (success <> True) then
    begin
      WriteLn(imap.LastErrorText);
      Exit;
    end;

  //  Authenticate, but with an intentionally incorrect password
  //  so we can see the contents of the LastErrorText, and also
  //  the LastResponse and LastResponseCode properties.
  success := imap.Login('my_login','my_intentionally incorrect_password');
  if (success = True) then
    begin
      WriteLn('Successfull login, but this example is meant to demonstrate an error, such as a failed login.');
      Exit;
    end;

  //  Let's look at the LastErrorText, and also the LastResponse and LastResponseCode.
  WriteLn('LastResponseCode = ' + imap.LastResponseCode);
  WriteLn('LastReponse = ' + imap.LastResponse);
  WriteLn('LastErrorText = ' + imap.LastErrorText);

  //  Sample output:

  //  LastResponseCode = AUTHENTICATIONFAILED
  //  LastReponse = aaab NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
  //  LastErrorText = ChilkatLog:
  //    Login:
  //      DllDate: Oct 28 2023
  //      ChilkatVersion: 9.5.0.96
  //      UnlockPrefix: EXCODE
  //      UnlockStatus: 2
  //      Architecture: Little Endian; 64-bit
  //      Language: .NET 4.5 / x64 / VS2012
  //      VerboseLogging: 0
  //      imapServer: imap.gmail.com
  //      loginX(47ms):
  //        login: my_login
  //        greeting: * OK Gimap ready for requests from 98.213.102.119 w5mb285327441qtc
  //  
  //        authenticateLogin(47ms):
  //          loginImap(47ms):
  //            ConnectionType: SSL/TLS
  //            ImapCmdSent: aaab LOGIN "my_login"
  //            getCompleteResponse(47ms):
  //              ImapCmdResp: aaab NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
  //            --getCompleteResponse
  //          --loginImap
  //          isOK:
  //            serverResponse: aaab NO [AUTHENTICATIONFAILED] Invalid credentials (Failure)
  //          --isOK
  //        --authenticateLogin
  //      --loginX
  //      Failed.
  //    --Login
  //  --ChilkatLog

  //  Disconnect from the IMAP server.
  success := imap.Disconnect();


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