Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Example: Email.GetDsnInfo method
See more Email Object Examples
Demonstrates how to call the GetDsnInfo method.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.Email,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
email: TEmail;
json: TJsonObject;
strVal: string;
reporting_mta: string;
action: string;
status: string;
remote_mta: string;
x_supplementary_info: string;
x_display_name: string;
i: Integer;
count: Integer;
begin
success := False;
email := TEmail.Create;
success := email.LoadEml('qa_data/eml/sample_multipart_report.eml');
if (success = False) then
begin
WriteLn(email.LastErrorText);
Exit;
end;
json := TJsonObject.Create;
success := email.GetDsnInfo(json);
if (success = False) then
begin
WriteLn(email.LastErrorText);
Exit;
end;
json.EmitCompact := False;
WriteLn(json.Emit());
// Sample output:
// {
// "reporting-mta": "dns; Exchange2016.example.com",
// "final-recipient": [
// "herb.butterworth1247692846@gmail.com"
// ],
// "action": "failed",
// "status": "5.1.1",
// "remote-mta": "dns; mx.google.com",
// "x-supplementary-info": "<mx.google.com #5.1.1 smtp;550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 https://support.google.com/mail/?p=NoSuchUser o8-20020a056870968800b001b55816bea9si2188132oaq.70 - gsmtp>",
// "x-display-name": "herb.butterworth1247692846@gmail.com"
// }
// Code for parsing the JSON:
reporting_mta := json.StringOf('reporting-mta');
action := json.StringOf('action');
status := json.StringOf('status');
remote_mta := json.StringOf('remote-mta');
x_supplementary_info := json.StringOf('x-supplementary-info');
x_display_name := json.StringOf('x-display-name');
i := 0;
count := json.SizeOfArray('final-recipient');
while i < count do
begin
json.I := i;
strVal := json.StringOf('final-recipient[i]');
i := i + 1;
end;
email.Free;
json.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.